[내일배움단] 엑셀보다 쉬운 SQL - 4주차 개발일지(Weekly I learned)

2022. 7. 13. 04:10SQL 종합반

Subquery = 하나의 SQL 쿼리 안에 또다른 SQL 쿼리가 있는 것을 의미

 

* Where 에 들어가는 Subquery

* Select 에 들어가는 Subquery

* From 에 들어가는 Subquery (가장 많이 사용되는 유형!)

* with절 : 깔끔하게 쿼리 정리

더보기

select c.title,
       a.cnt_checkins,
       b.cnt_total,
       (a.cnt_checkins/b.cnt_total) as ratio
from
(
select course_id, count(distinct(user_id)) as cnt_checkins from checkins
group by course_id
) a
inner join
(
select course_id, count(*) as cnt_total from orders
group by course_id 
) b on a.course_id = b.course_id
inner join courses c on a.course_id = c.course_id

with를 사용해서 아래 쿼리처럼 정리 가능하다.

더보기

with table1 as (
select course_id, count(distinct(user_id)) as cnt_checkins from checkins
group by course_id
), table2 as (
select course_id, count(*) as cnt_total from orders
group by course_id
)

select c.title,
       a.cnt_checkins,
       b.cnt_total,
       (a.cnt_checkins/b.cnt_total) as ratio
from table1 a inner join table2 b on a.course_id = b.course_id
inner join courses c on a.course_id = c.course_id

 

 

[평가]

*Keep:

-

*Problem:

1. where절 과 group by 구분.. group by는 무조건 ~별로!

2. select절 안에 subquery 문제엔 where을 활용해야한다.

*Try:

1. select절 안에 subquery 문제 복습하기