Welcome! Everything is fine.

[프로그래머스/Lv.4] 오프라인/온라인 판매 데이터 통합하기 - MySQL 본문

프로그래머스/SQL

[프로그래머스/Lv.4] 오프라인/온라인 판매 데이터 통합하기 - MySQL

개발곰발 2024. 4. 23.
728x90

📌 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

📌 정답

모르겠어서 답을 보고 푼 문제.😥 UNION ALL은 써보지 않아 생소했는데 익숙해져야겠다. UNION ALL은 여러 쿼리문들을 합쳐 하나의 쿼리문으로 만들어주며, 중복된 값을 모두 보여준다.(UNION은 중복된 값을 제거하고 보여줌. 따라서 중복처리를 해야하는 UNION이 더 느리다!) NULL 값으로 채우는 방법도 알게되었으니 까먹지 말자..

SELECT
DATE_FORMAT(SALES_DATE, "%Y-%m-%d") SALES_DATE,
PRODUCT_ID,
USER_ID,
SALES_AMOUNT
FROM ONLINE_SALE
WHERE SALES_DATE LIKE '2022-03%'
UNION ALL
SELECT
DATE_FORMAT(SALES_DATE, "%Y-%m-%d") SALES_DATE,
PRODUCT_ID,
NULL USER_ID,
SALES_AMOUNT
FROM OFFLINE_SALE
WHERE SALES_DATE LIKE '2022-03%'
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID;