본문 바로가기
IT/SQL

[프로그래머스] SQL 고득점 Kit - 오프라인/온라인 판매 데이터 통합하기(Oracle)

by 먼지한톨 2023. 11. 5.
반응형

문제설명

  • 테이블명 : ONLINE_SALE
  • 설명 : 의류 쇼핑몰 온라인 상품 판매 정보
NAME TYPE NULLABLE COMMENT
ONLINE_SALE_ID INTEGER FALSE 상품판매 ID
USER_ID INTEGER FALSE 회원 ID
PRODUCT_ID INTEGER FALSE 상품 ID
SALES_AMOUNT INTEGER FALSE 판매량
SALES_DATE DATE FALSE 판매일

 

  • 테이블명 : OFFLINE_SALE
  • 설명 : 의류 쇼핑몰 온라인 상품 판매 정보
NAME TYPE NULLABLE COMMENT
OFFLINE_SALE_ID INTEGER FALSE 상품판매 ID
PRODUCT_ID INTEGER FALSE 상품 ID
SALES_AMOUNT INTEGER FALSE 판매량
SALES_DATE DATE FALSE 판매일

 

문제

ONLIE_SALE 테이블과 .OFFLINE_SALE 테이블에서 2022년 3월 오프라인/온라인 상품 판매 데이터의 판매날짜, 상품ID, 유저ID, 판매량을 출력하는 SQL 문을 작성해주세요. OFFLINE_SALE 테이블의 판매데이터의 USER_ID값은 NULL로 표시해주세요. 결과는 판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품ID를 기준으로 오름차순, 상품ID까지 같다면 유저ID를 기준으로 오름차순 정렬해주세요.

 

SQL 답

SELECT TO_CHAR(SALES_DATE, 'YYYY-MM-DD'), PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM  ONLINE_SALE
WHERE TO_CHAR(SALES_DATE, 'YYYYMM') = '202203'
UNION 
SELECT TO_CHAR(SALES_DATE, 'YYYY-MM-DD'), PRODUCT_ID, NULL, SALES_AMOUNT
FROM  OFFLINE_SALE
WHERE TO_CHAR(SALES_DATE, 'YYYYMM') = '202203'
;
반응형