-- 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력
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
'동일한 날짜, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재'하므로 가능
만약 온오프라인 모두에서 동일한 날짜와 상품 ID 조합을 세야한다면 (user_id 고려 X)
-- 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력
SELECT SALES_DATE, PRODUCT_ID, SUM(SALES_AMOUNT) SALES_AMOUNT
FROM (SELECT DATE_FORMAT(SALES_DATE, "%Y-%m-%d") SALES_DATE,
PRODUCT_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,
SALES_AMOUNT
FROM OFFLINE_SALE
WHERE SALES_DATE like '2022-03%')
GROUP BY SALES_DATE, PRODUCT_ID
ORDER BY SALES_DATE, PRODUCT_ID
이렇게 짜면 되지 않을까나..?
'언어' 카테고리의 다른 글
list.count(n) (0) | 2023.12.12 |
---|---|
WITH RECURSIVE (0) | 2023.12.12 |
GROUP_CONCAT (0) | 2023.12.08 |
DATEDIFF (1) | 2023.12.08 |
CONCAT_WS (1) | 2023.12.08 |