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

Ga0·2023년 5월 24일
1

programmers

목록 보기
2/14

오프라인/온라인 판매 데이터 통합하기(SELECT - LEVEL4)

예시

예를 들어 ONLINE_SALE 테이블이 다음과 같고

OFFLINE_SALE 테이블이 다음과 같다면

실행 결과는 다음과 같이 나와야 한다.

SQL문 - MySQL

    SELECT DATE_Format(SALES_DATE, '%Y-%m-%d') as SALES_DATE, -- '2022-05-24'형식으로 포맷
           PRODUCT_ID, -- 제품 ID
           USER_ID,  -- 회원 ID
           SALES_AMOUNT -- 판매량
        from ONLINE_SALE -- 온라인 고객
        where Month(SALES_DATE) = 3
union -- 쿼리의 결과를 합치고, 중복된 ROW는 제거한다. (오프라인/온라인의 쿼리 결과를 합친다는 의미)
    SELECT DATE_Format(SALES_DATE, '%Y-%m-%d') as SALES_DATE, -- '2022-05-24'형식으로 포맷
           PRODUCT_ID, 
           Null as USER_ID, -- 오프라인 고객은 USER_ID가 없으므로 NULL값으로 채우고 
           SALES_AMOUNT -- 판매량
        from OFFLINE_SALE -- 오프라인
        where Month(SALES_DATE) = 3 -- 판매일자가 3월인 모든 데이터(오프라인&온라인)를 출력
order by SALES_DATE, PRODUCT_ID, USER_ID -- 다 오름차순 정렬

  • union 연산을 사용할 경우 이러한 식으로 중복값은 하나만 추가하여 더하여 새로운 테이블을 만든다.

0개의 댓글