포스트

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

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

문제 문제

  • 문제 풀이
1
2
3
4
5
6
7
8
9
10
SELECT TO_CHAR(SALES_DATE, 'YYYY-MM-DD') AS SALES_DATE, PRODUCT_ID, NVL(USER_ID, NULL) AS "USER_ID", SALES_AMOUNT 
FROM (
     SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
     FROM ONLINE_SALE
     WHERE TO_CHAR(SALES_DATE, 'YYYY-MM') = '2022-03'
     UNION
     SELECT SALES_DATE, PRODUCT_ID, NULL AS "USER_ID", SALES_AMOUNT
     FROM OFFLINE_SALE 
     WHERE TO_CHAR(SALES_DATE, 'YYYY-MM') = '2022-03'
     );
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
SELECT
    TO_CHAR(A.SALES_DATE, 'YYYY-MM-DD') AS SALES_DATE,
    A.PRODUCT_ID,
    A.USER_ID,
    A.SALES_AMOUNT
FROM (
    SELECT
        USER_ID,
        PRODUCT_ID,
        SALES_AMOUNT,
        SALES_DATE
    FROM
        ONLINE_SALE
    WHERE
        TO_CHAR(SALES_DATE, 'MM') = '03'

    UNION

    SELECT
        NULL AS USER_ID,
        PRODUCT_ID,
        SALES_AMOUNT,
        SALES_DATE
    FROM
        OFFLINE_SALE
    WHERE
        TO_CHAR(SALES_DATE, 'MM') = '03'
) A
ORDER BY
    SALES_DATE, A.PRODUCT_ID, A.USER_ID;


  • INNER JOIN & FULL OUTER JOIN

실행 결과

실행 결과

실행 결과


  • UNION

실행 결과

실행 결과


  • 오답 - 문제가 요구하는 바와 다르다.

실행 결과


  • 실행 결과

실행 결과

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.