참고: https://school.programmers.co.kr/learn/courses/30/lessons/131537
✔️ 문제
설명은 다음과 같다.
✔️ 풀이
다음과 같은 문제가 있을 때,
1) ONLINE과 OFFLINE 테이블을 병합하고,
2) 2022년 3월의 데이터를 출력해야하며,
3) USER_ID값이 없는 것은 NULL로 출력하고,
4) 판매일을 기준으로 오름차순, 상품 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 >= "2022-03-01" AND SALES_DATE < "2022-04-01"
UNION
SELECT DATE_FORMAT(SALES_DATE, "%Y-%m-%d") as SALES_DATE, PRODUCT_ID, NULL as USER_ID, SALES_AMOUNT
FROM OFFLINE_SALE
WHERE SALES_DATE >= "2022-03-01" AND SALES_DATE < "2022-04-01"
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID;
SALES_DATE는 날짜 형식을 Y-m-d 형태로 출력을 진행하는데,
3월에 해당하는 조건으로 UNION을 통해 합집합을 수행한다.
이때, USER_ID가 없는 OFFLINE 테이블은 NULL로 데이터를 삽입하고,
마지막에 ORDER BY 조건절을 통해서 4번의 조건을 수행한다.
화이팅 💪
'알고리즘(algo) > SQL' 카테고리의 다른 글
[SQL] 가격이 제일 비싼 식품의 정보 출력하기 (0) | 2023.02.12 |
---|---|
[SQL] 중복 제거하기 (0) | 2023.02.12 |
[SQL] 서울에 위치한 식당 목록 출력하기 (0) | 2023.02.11 |
[SQL] 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2023.02.11 |
[SQL] 3월에 태어난 여성 회원 목록 출력하기 (0) | 2023.02.09 |