[프로그래머스_SQL] 오프라인/온라인 판매 데이터 통합하기
📜문제
https://school.programmers.co.kr/learn/courses/30/lessons/131537
📜정답
SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d')AS SALES_DATE,
PRODUCT_ID,USER_ID,SALES_AMOUNT
FROM ONLINE_SALE
WHERE LEFT(SALES_DATE,7)='2022-03'
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 LEFT(SALES_DATE,7)='2022-03'
ORDER BY SALES_DATE,PRODUCT_ID,USER_ID ASC
📜노트
OFFLINE_SALE
테이블의 USER_ID
는 NULL값을 가져야 하므로 NULL AS USER_ID
로 조회한다.
UNION
을 사용해 쿼리문을 합칠 때 전체 결과 집합에 적용되므로 마지막에 해주는 것이 좋다.
- LEFT(문자열,길이)
왼쪽부터 원하는 길이만큼 문자를 자르는 함수이다.
LEFT(SALES_DATE,7)
는 SALES_DATE의 문자열 값을 7만큼 자른 2022-03이 나온다.
오른쪽부터 자르길 원하면 RIGHT()함수를 사용할 수 있다.
- DATE_FORMAT(컬럼명,’원하는 날짜 형식’)