개발/SQL

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

송디 2024. 4. 18. 10:12

출처 : 프로그래머스
출처 : 프로그래머스

 

■ 사용 문법 

UNION, NULL AS 칼럼 A 

 

■ 사용 방법

두 개의 테이블을 열로 합치는 문제이다. 순간 join을 생각했지만 중복된 칼럼이 있는게 아니라 테이블의 값이 개별적으로 존재 할 것 같아서 열로 합치는 UNION을 생각했다. 

UNION은 칼럼이 똑같아야 합칠 수 있다. 그래서 offline에는 존재하지 않는 USER_ID를 NULL 값으로 채워줘서 만들어줘야 한다. 이 때 NULL AS USER_ID를 사용한다.  

 

■ 코드 

(SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d') AS SALES_DATE, PRODUCT_ID,USER_ID, SALES_AMOUNT  
FROM ONLINE_SALE 
WHERE SALES_DATE BETWEEN date('2022.03.01') and date('2022.03.31')
UNION ALL
SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d')  AS SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT 
FROM OFFLINE_SALE
WHERE SALES_DATE BETWEEN date('2022.03.01') and date('2022.03.31')
 )
ORDER BY SALES_DATE ASC, PRODUCT_ID ASC, USER_ID ASC
728x90