dmswl

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

코테 공부/SQL

[프로그래머스] SELECT 오프라인/온라인 판매 데이터 통합하기

dmswl. 2024. 8. 7. 15:35

M1.

SELECT *
FROM (
SELECT TO_CHAR(SALES_DATE,'YYYY-MM-DD') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM ONLINE_SALE A
WHERE TO_CHAR(SALES_DATE,'YYYYMM') = '202203'

UNION ALL

SELECT TO_CHAR(SALES_DATE,'YYYY-MM-DD') AS SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT
FROM OFFLINE_SALE A
WHERE TO_CHAR(SALES_DATE,'YYYYMM') = '202203'
)
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID

 

M2.

-- 목적: 온라인, 오프라인으로 분리되어있는 테이블에서 2022년 3월 모든 판매 데이터에서 판매날짜, 상품 ID, 유저 ID, 판매량을 가져오는 것.
# 1. 온라인, 오프라인 테이블에서 각각 2022년 3월에 해당하는 데이터만 추출하기
# 2. 두 테이블을 행기준으로 합치기(UNION ALL)
# 3. 판매일 기준으로 오름차순 정렬하기, 상품ID 기준 오름차순, 유저 ID 기준

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, SALES_AMOUNT
FROM OFFLINE_SALE
WHERE DATE_FORMAT(SALES_DATE, '%Y-%m') = '2022-03'

ORDER BY SALES_DATE, PRODUCT_ID, USER_ID

Comments