문제풀이 링크: https://datalemur.com/questions/amazon-shopping-spree
👒 아마존 쇼핑 스프리 고객 식별 문제 요약
- 목적: 쇼핑 스프리를 경험한 고객(user_id)을 식별
- 조건: 3일 이상 연속으로 구매한 이력이 있어야 하며, 최종 출력은 user_id 기준 오름차순 정렬
- 쇼핑 스프리 정의:
- 3일 이상 연속해서 매일 구매한 경우를 쇼핑 스프리로 인정
- 셀프 조인(Self Join) 사용:
- 같은 테이블을 2번 조인하여 거래 날짜가 +1일, +2일 차이 나는 레코드 연결
- 이때, user_id가 같은 경우만 조인
- DATE() 함수로 날짜만 비교:
- transaction_date에 시간이 포함되기 때문에 DATE()로 시간을 제거하고 날짜만 뽑아 정확한 하루 단위 비교
SELECT T1.user_id
FROM transactions T1
JOIN transactions T2
ON DATE(T2.transaction_date) = DATE(T1.transaction_date) + 1
AND T2.user_id = T1.user_id
JOIN transactions T3
ON DATE(T3.transaction_date) = DATE(T1.transaction_date) + 2
AND T3.user_id = T2.user_id
ORDER BY T1.user_id;
'SQL' 카테고리의 다른 글
3-Topping Pizzas: McKinsey SQL Interview Question (0) | 2025.04.28 |
---|---|
Histogram of Users and Purchases: Walmart SQL Interview Question (0) | 2025.04.28 |
Advertiser Status: Facebook SQL Interview Question (0) | 2025.04.26 |
Maximize Prime Item Inventory: Amazon SQL Interview Question (0) | 2025.04.25 |
Swapped Food Delivery: Zomato SQL Interview Question (0) | 2025.04.24 |