• programming language/SQL
[프로그래머스_SQL] 오프라인/온라인 판매 데이터 통합하기
oujin
2023. 12. 28. 17:46
728x90
with sale as(select SALES_DATE,PRODUCT_ID,USER_ID,SALES_AMOUNT
from ONLINE_SALE
union all
select SALES_DATE,PRODUCT_ID,null USER_ID,SALES_AMOUNT
from OFFLINE_SALE )
select date_format(SALES_DATE,'%Y-%m-%d'),PRODUCT_ID,USER_ID,SALES_AMOUNT
from sale
where SALES_DATE like "2022-03%"
order by SALES_DATE,PRODUCT_ID,USER_ID
▶ 임시 테이블 만들기
with 구문을 사용하여 sale 이라는 임테이블을 만든다.
이 sale 이라는 테이블은 ONLINE_SALE 테이블에 있는 4가지 컬럼(SALES_DATE,PRODUCT_ID,USER_ID,SALES_AMOUNT)과
OFFLINE_SALE 테이블에 있는 4가지 컬럼(SALES_DATE,PRODUCT_ID,null USER_ID,SALES_AMOUNT)을 합친 테이블이다.
이때 OFFLINE_SALE 테이블에는 USER_ID가 없기 때문에 NULL을 붙여준다.
▶ 날짜 형식 변경
SALES_DATE의 출력형식을 YYYY-MM-DD형태로 출력하기 위해 DATE_FORMATS을 사용한다.
DATE_FORMAT(SALES_DATE,'%Y-%m-%d')
▶ 날짜 찾기
LIKE 와 %를 사용한다.
WHERE SALES_DATE LIKE "2022-03%"
728x90