문제 출저
https://school.programmers.co.kr/learn/courses/30/lessons/131537
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
ONLINE_SALE, OFFLINE_SALE 두 테이블에서 2022년 3월의 오프라인, 온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저 ID, 판매량을 출력해야 한다.
오프라인, 온라인 상품을 모두 출력하므로 UNION 을 사용한다.
UNION의 주의 사항은 두 테이블의 열을 일치시켜야 하는 것이다.
OFFLINE_SALE 에서는 유저ID가 없으므로 NULL을 표시 해야한다. (NULL AS USER_ID )
2022년 3월의 데이터를 가져오기 위해 WHERE를 사용한다.
SQL
SELECT
DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE,
PRODUCT_ID,
USER_ID,
SALES_AMOUNT
FROM
ONLINE_SALE
WHERE
YEAR(SALES_DATE) = '2022' AND MONTH(SALES_DATE) = '3'
UNION
SELECT
DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE,
PRODUCT_ID,
NULL AS USER_ID,
SALES_AMOUNT
FROM
OFFLINE_SALE
WHERE
YEAR(SALES_DATE) = '2022' AND MONTH(SALES_DATE) = '3'
ORDER BY
SALES_DATE, PRODUCT_ID, USER_ID