Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Retention
- MYSQL
- 순위함수
- dense_rank
- 데이터분석
- 서브쿼리
- 윈도우 함수
- leetcode
- 취준
- Datarian
- row_number
- 독서
- SQL
- 신입 데이터분석가
- python
- 린분석
- 누적합
- pandas
- 퍼널분석
- LEFTJOIN
- 프로그래머스
- 그로스해킹
- SolveSQL
- 윈도우함수
- advent of sql
- 데이터리안
- regexp
- 리텐션
- rank
- funnel
Archives
- Today
- Total
데이터 분석
1158. Market Analysis 1 | Medium 💡 본문
문제
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/
'SQL > leetcode' 카테고리의 다른 글
| 607. Sales Person | Easy (0) | 2025.03.24 |
|---|---|
| 586. Customer Placing the Largest Number of Orders | Easy (0) | 2025.03.22 |
| 601. Human Traffic of Stadium | Hard 🔥 (0) | 2025.02.18 |
| 1393. Capital Gain/Loss | Medium 💡 (0) | 2025.02.17 |
| 1321. Restaurant Growth | Medium 🔥 (1) | 2025.02.01 |