문제 해석
1. 오프라인 데이터와 온라인 데이터를 통합
2. 2022년 3월 데이터만 출력
3. 상품 판매 일, 상품 ID, 유저 ID 순으로 내림차순 정렬
문제 풀이
1. UNION을 사용해서 온라인, 오프라인 데이터를 통합한 테이블을 만든다.
2. 서브쿼리를 활용해 위에서 만든 테이블을 인라인 뷰에서 활용한다.
3. 판매일이 2022-03-01일부터 2022-03-31일 인 데이터를 뽑는다.
4. 정렬한다.
SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM (
SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM ONLINE_SALE
UNION
SELECT SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT
FROM OFFLINE_SALE
) AS SALES_DATA
WHERE SALES_DATE BETWEEN '2022-03-01' AND '2022-03-31'
ORDER BY SALES_DATE , PRODUCT_ID, USER_ID
처음엔 UNION ALL로 풀었지만 생각해보니 오프라인데이터와 온라인 데이터가 중복될 일이 없으니 (오프라인은 USER_ID가 NULL임) UNION으로 풀었다.
'코딩테스트 > SQL' 카테고리의 다른 글
[SQL Lv4] 주문량이 많은 아이스크림들 조회하기 (1) | 2024.11.18 |
---|---|
[SQL Lv4] 특정 세대의 대장균 찾기 (0) | 2024.11.18 |
[SQL Lv3] 대장균의 크기에 따라 분류하기 1 (0) | 2024.11.18 |
[SQL Lv3] 대장균들의 자식 수 구하기 (1) | 2024.11.14 |
[SQL Lv4] 서울에 위치한 식당 목록 출력하기 (0) | 2024.11.14 |
댓글