
문제
- LeetCode SQL 문제
1158. Market Analysis I / Medium- 문제 내용 : [링크]
내가 작성한 Query
select u.user_id as buyer_id , u.join_date , sum(case when o.order_date between '2019-01-01' and '2019-12-31' then 1 else 0 end) as orders_in_2019 from users u left join orders o on u.user_id = o.buyer_id group by u.user_id
users 테이블과 orders 테이블에서 회원별 2019년 주문 건수를 추출하는 문제이다.
user 레벨 기준으로 데이터가 출력되어야 하므로, (즉, 2019년 주문이 없어도 모든 유저 정보는 추출 되어야 하므로) users 테이블 기준 LEFT JOIN 해준다. (`u.user_id = o.buyer_id)
user별 정보를 추출해야 하므로 user_id 기준으로 GROUP BY 해 준다.
user_id, join_date를 추출해준다.
CASE WHEN THEN 구문을 통해, order_date가 2019년이라면 1, 아니면 0을 출력하게 하고 이를 SUM()을 통해 총 주문 건수를 구해준다.
