๐ซ ๋ฌธ์
๐ซ CODE
SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM (
SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM ONLINE_SALE
WHERE EXTRACT(YEAR FROM SALES_DATE) = 2022 AND EXTRACT(MONTH FROM SALES_DATE) = 3
UNION ALL
SELECT SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT
FROM OFFLINE_SALE
WHERE EXTRACT(YEAR FROM SALES_DATE) = 2022 AND EXTRACT(MONTH FROM SALES_DATE) = 3
) AS ONLINE_OFFLINE_SALE
ORDER BY SALES_DATE ASC, PRODUCT_ID ASC, COALESCE(USER_ID, -1) ASC;
ย
๐ซ ํ์ด ์กฐ๊ฑด
1. 2022๋ 3์์ ์คํ๋ผ์ธ/์จ๋ผ์ธ ์ํ ํ๋งค ๋ฐ์ดํฐ
2. ํ๋งค ๋ ์ง, ์ํID, ์ ์ ID, ํ๋งค๋ ์ถ๋ ฅ
3. OFFLINE_SALE ํ ์ด๋ธ์ ํ๋งค ๋ฐ์ดํฐ์ USER_ID ๊ฐ์ NULL ๋ก ํ์
4. ํ๋งค์ผ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์๊ณ ํ๋งค์ผ์ด ๊ฐ๋ค๋ฉด ์ํ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์, ์ํID๊น์ง ๊ฐ๋ค๋ฉด ์ ์ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
ย
๐ซ ํ์ด
1. SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
- ํ๋งค ๋ ์ง(SALES_DATE), ์ํID(PRODUCT_ID), ์ ์ ID(USER_ID), ํ๋งค๋(SALES_AMOUNT) ์กฐํ
- DATE_FORMAT(SALES_DATE, '%Y-%m-%d')์ ์ด์ฉํด์ ํ๋งค ๋ ์ง(SALES_DATE)๊ฐ ๋ -์-์ผ ๊น์ง๋ง ๋์ค๋๋ก
2. FROM () AS ONLINE_OFFLINE_SALE
- FROM์ ์ AS๋ฅผ ์ฌ์ฉํ์ฌ ONLINE_OFFLINE_SALE ๋ณ์นญ ์ง์
3. SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE WHERE EXTRACT(YEAR FROM SALES_DATE) = 2022 AND EXTRACT(MONTH FROM SALES_DATE) = 3
- ONLINE_SALE ํ ์ด๋ธ์ ํ๋งค ๋ ์ง(SALES_DATE), ์ํID(PRODUCT_ID), ์ ์ ID(USER_ID), ํ๋งค๋(SALES_AMOUNT) ์กฐํ
- EXTRACT()๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋, ์ ์ง์
4. UNION ALL
- ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ ํฉ์ณ์ค, ์ค๋ณต์ ๊ฑฐ x. <-> UNION๋ง ์ผ์๋๋ ์ค๋ณต ์ ๊ฑฐ O
5. SELECT SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT FROM OFFLINE_SALE WHERE EXTRACT(YEAR FROM SALES_DATE) = 2022 AND EXTRACT(MONTH FROM SALES_DATE) = 3
- ONLINE_SALE ํ ์ด๋ธ์ ํ๋งค ๋ ์ง(SALES_DATE), ์ ์ ID(USER_ID), ํ๋งค๋(SALES_AMOUNT) ์กฐํ
- NULL๊ฐ์ ๋ณ์นญ์ USER_ID๋ก ์ง์
- EXTRACT()๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋, ์ ์ง์
6. ORDER BY SALES_DATE ASC, PRODUCT_ID ASC, COALESCE(USER_ID, -1) ASC
- ํ๋งค์ผ(SALES_DATE)์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ, ํ๋งค์ผ(SALES_DATE)์ด ๊ฐ๋ค๋ฉด ์ํID(PRODUCT_ID)๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์, ์ํID(PRODUCT_ID)๊น์ง ๊ฐ๋ค๋ฉด ์ ์ ID(USER_ID)๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
-COALESCE()ํจ์๋ฅผ ์ด์ฉํ์ฌ USER_ID๊ฐ NULL์ด ์๋๋ฉด USER_ID๋ฅผ ๋ฐํํ๊ณ , NULL์ด๋ผ๋ฉด -1์ ๋ฐํํ์ฌ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํ๋๋ก