꿈은 데이터분석가, 취미는 계획

[MY SQL] 오프라인/온라인 데이터 통합하기(UNION) 본문

SQL/sql문풀

[MY SQL] 오프라인/온라인 데이터 통합하기(UNION)

data_2080 2024. 7. 28. 23:16
728x90

출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] :  오프라인/온라인 판매 데이터 통합하기

링크: https://school.programmers.co.kr/learn/courses/30/lessons/131537


문제(일부):  온/오프라인의 판매 테이블을 출력, 오프라인 테이블의 USER_ID는 NULL로 표시


UNION ALL로 2개의 테이블 합치기

1) 기간을 설정한 온,오프라인의 2개 테이블을 UNION ALL로 합치기
2) 오프라인의 경우 USER_ID가 NULL로 나올 수 있게 NULL값으로 채운 컬럼을 생성

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')='2022-03'
UNION ALL
SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d') AS SALES_DATE
        ,PRODUCT_ID
        ,NULL USER_ID
        ,SALES_AMOUNT
FROM OFFLINE_SALE
WHERE DATE_FORMAT(SALES_DATE,'%Y-%m')='2022-03'

ORDER BY SALES_DATE,PRODUCT_ID,USER_ID
728x90