Algorithm (PS)

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

minjiwoo 2023. 1. 6. 10:45
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/131537

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

pandas 에서 concat 이랑 비슷한게 SQL에서는 UNION ALL 연산이다 

UNION 연산은 각 쿼리 결과값의 합집합을 반환하며, 중복값을 제거하여 반환한다.

UNION ALL 연산은 각 쿼리 결과값의 합집합을 반환하며,  연산은 중복값을 제거하지 않고 반환한다. 

또한 OFFLINE_SALES 테이블에는 USER_ID값이 없으니까 처음부터 NULL 로 초기화를 해주면 된다. -> NULL AS USER_ID

-- 코드를 입력하세요


SELECT date_format(SALES_DATE, "%Y-%m-%d") AS SALES_DATE, 
    a.PRODUCT_ID, 
    a.USER_ID, 
    a.SALES_AMOUNT
    FROM ONLINE_SALE a
    WHERE a.SALES_DATE >= '2022-03-01' AND a.SALES_DATE < '2022-04-01'
UNION ALL 
    SELECT date_format(SALES_DATE, "%Y-%m-%d") AS SALES_DATE, 
        b.PRODUCT_ID, 
        NULL AS USER_ID, 
        b.SALES_AMOUNT
    FROM OFFLINE_SALE b
    WHERE b.SALES_DATE >= '2022-03-01' AND b.SALES_DATE < '2022-04-01'

ORDER BY SALES_DATE, PRODUCT_ID, USER_ID
728x90