티끌모아 태산

오프라인/온라인 판매 데이터 통합하기 본문

프로그래머스/SQL 고득점 Kit

오프라인/온라인 판매 데이터 통합하기

goldpig 2024. 3. 29. 12:56
728x90

설명

조건

  • 2022년 3월의 오프라인/온라인 상품 판매 데이터를 출력 -> 2022년 3월
  • 오프라인 테이블의 판매 데이터의 USER_ID 값은 NULL로 표기. -> NULL  AS USER_ID
  • 판매일을 기준으로 오름차순 정렬, 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품 ID까지 같다면, 유전 ID를 기준으로 오름 차순 -> ORDER BY ASC or DESC

UNION DISTINCT

쿼리의 결과를 합치는데, 중복된 행을 제거한 후 합친다.

UNION ALL

쿼리 결과를 합치는데, 중복을 제거하지 않고 합친다.

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 ALL

SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, NULL AS USER_ID,
SALES_AMOUNT FROM OFFLINE_SALES
WHERE YEAR(SALES_DATE) = 2022 AND MONTH(SALES_DATE) = 3

ORDER BY SALES_DATE, PRODUCT_ID, USER_ID
-- 코드를 입력하세요
# 온라인 먼저
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 DISTINCT

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;
728x90