03/25 SQL 문제풀이 - 1158. Market Analysis I (Leetcode)

Data Architect / Engineer·2024년 3월 25일
1

1일_1SQL

목록 보기
55/63
post-thumbnail

문제

  • 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()을 통해 총 주문 건수를 구해준다.

profile
질문은 계속돼 아오에

0개의 댓글