728x90
❓ Question
❗ Answer
SELECT DATE_FORMAT(sales_date,'%Y-%m-%d'), product_id, IFNULL(user_id,NULL) user_id, sales_amount
FROM (SELECT sales_date, product_id, user_id, sales_amount
FROM online_sale
UNION
SELECT sales_date, product_id, NULL, sales_amount
FROM offline_sale) a
WHERE sales_date LIKE '2022-03%'
ORDER BY sales_date, product_id, user_id;
📌 Discussion
- sub-query에서 두 테이블로부터 동일한 column명으로 데이터를 불러내어 UNION으로 같은 column으로 합침
- null로 처리해야할 offline_sales의 user_id는 컬럼 자체를 null로 select 진행
- main-query에서 데이터 형태를 변경, 조건부 필터를 걸고, 정렬까지 진행
'SQL 문제풀이' 카테고리의 다른 글
[프로그래머스 SQL] LV.1 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2023.08.12 |
---|---|
[프로그래머스 SQL] LV.4 입양 시각 구하기(2) (0) | 2023.08.11 |
[프로그래머스 SQL] LV.4 그룹별 조건에 맞는 식당 목록 출력하기 (0) | 2023.08.11 |
[프로그래머스 SQL] LV.3 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2023.08.11 |
[프로그래머스 SQL] LV.4 저자 별 카테고리 별 매출액 집계하기 (0) | 2023.08.11 |