coding/sql 코딩테스트
[프로그래머스] 오프라인/온라인 판매 데이터 통합하기
임이레
2025. 3. 25. 22:23
문제상황은 ONLINE과 OFFLINE 의 데이터를 합치는 것인데 JOIN 으로 해결되는 문제가 아니기 때문에 UNION 을 쓴다.
문제 고려 사항은
- 각각의 테이블 3월 데이터로 1차 필터링 할 것
- OFFLINE 테이블엔 USER_ID 가 없으므로 NULL로 지정하고 하나의 열을 만들어줄 것
처음에는 UNION 뒤에 판매날짜와 PRODUCT_ID 로 그룹화해서 집계를 하는 것인가 했는데, 아니었다. 그냥 합치면 되는 것...
결국 UNION을 쓰는 것에 대해 물어본 것이었음..
SELECT DATE_FORMAT(SALES_DATE ,'%Y-%m-%d') as SALES_DATE
, PRODUCT_ID
, USER_ID
, SALES_AMOUNT
FROM ONLINE_SALE
WHERE DATE_FORMAT(SALES_DATE, '%Y-%m') like '2022-03%'
UNION
SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') as SALES_DATE
, PRODUCT_ID
, NULL as USER_ID
, SALES_AMOUNT
FROM OFFLINE_SALE
WHERE DATE_FORMAT(SALES_DATE, '%Y-%m') like '2022-03%'
ORDER BY 1,2,3
정답!