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

 

정답! 

'coding > sql 코딩테스트' 카테고리의 다른 글

PERCENT_RANK()  (0) 2025.04.04
[해커랭크] New Companies  (0) 2025.03.26
[리트코드] 1174. Immediate Food Delivery II  (0) 2025.02.20
[리트코드] 620. Not Boring Movies  (0) 2025.02.15
[리트코드] 619. Biggest Single Number  (0) 2025.02.15