https://school.programmers.co.kr/learn/courses/30/lessons/131537
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 풀이
- 두 테이블의 데이터를 합쳐야 하므로 UNION ALL 키워드를 사용한다.
- 먼저 ONLINE_SALE 테이블에서 2022년 3월인 행을 필터링해 판매 날짜, 상품 ID, 유저 ID, 판매량을 조회한다.
- 그리고 OFFLINE_SALE 테이블에서 2022년 3월인 행을 필터링해 판매 날짜, 상품 ID, 유저 ID, 판매량을 조회한다. 이 테이블에는 유저 ID가 없으므로 그냥 NULL로 조회한다.
- 두 테이블 모두 판매 날짜의 경우 DATE_FORMAT 키워드로 포맷을 맞춰준다.
- UNION ALL 키워드로 두 테이블의 조회 결과를 합친다.
- 판매일, 상품 ID, 유저 ID 순서대로 오름차순 정렬한다.
SELECT
DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE,
PRODUCT_ID,
USER_ID,
SALES_AMOUNT
FROM
ONLINE_SALE
WHERE
SALES_DATE LIKE '2022-03%'
UNION ALL
SELECT
DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE,
PRODUCT_ID,
NULL,
SALES_AMOUNT
FROM
OFFLINE_SALE
WHERE
SALES_DATE LIKE '2022-03%'
ORDER BY
1, 2, 3'SQL > SELECT' 카테고리의 다른 글
| [프로그래머스 SQL] Lv.4 - 특정 세대의 대장균 찾기 (0) | 2025.03.06 |
|---|---|
| [프로그래머스 SQL] Lv.4 - 서울에 위치한 식당 목록 출력하기 (0) | 2025.03.05 |
| [프로그래머스 SQL] Lv.3 - 대장균의 크기에 따라 분류하기 2 (2) | 2025.03.04 |
| [프로그래머스 SQL] Lv.3 - 대장균의 크기에 따라 분류하기 1 (0) | 2025.03.04 |
| [프로그래머스 SQL] Lv.3 - 대장균들의 자식의 수 구하기 (0) | 2025.03.04 |