데이터 분석

1158. Market Analysis 1 | Medium 💡 본문

SQL/leetcode

1158. Market Analysis 1 | Medium 💡

딱한아이 2025. 2. 19. 11:40
문제

 

Write a solution to find for each user, the join date and the number of orders they made as a buyer in 2019.

테이블 정보

 

💡이 문제의 핵심은 JOIN과 LEFT JOIN의 특징을 정확히 알고, 적절한 조인 조건을 활용하는 것이다.

 

 

Solution
SELECT u.user_id AS buyer_id
     , u.join_date
     , COUNT(CASE WHEN o.order_date LIKE '2019%' THEN o.order_id END) AS orders_in_2019 -- NULL은 COUNT 시 0
FROM Users u
  LEFT JOIN Orders o ON u.user_id = o.buyer_id
GROUP BY u.user_id, u.join_date

 

✔️2019년에 구매 이력이 없는 유저의 경우도 출력을 해야 하기 때문에 LEFT JOIN을 활용한다.

 

결과 예시

 

 

https://leetcode.com/problems/market-analysis-i/description/