코딩테스트/SQL
[프로그래머스/SELECT] - 오프라인/온라인 판매 데이터 통합하기
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
작성한 쿼리문
SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM ONLINE_SALE
WHERE MONTH(SALES_DATE) = 3
UNION ALL
SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT
FROM OFFLINE_SALE
WHERE MONTH(SALES_DATE) = 3
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID;
- ONLINE_SALE, OFFLINE_SALE 테이블에 대한 쿼리문을 각각 작성해준 뒤 UNION ALL을 사용하여 합쳐주었다.
- SALES_DATE는 DATE_FORMAT을 사용하여 '1999-01-01' 이런 식으로 출력되도록 하였다.
- OFFLINE_SALE 테이블의 USER_ID는 NULL로 표시되어야 하기 때문에, NULL AS USER_ID 로 적어준다.
- 두 테이블 모두 3월 달의 판매 데이터를 합쳐주어야 하기 때문에, WHERE절에 MONTH(SALES_DATE) = 3 을 적어준다.
반응형
'코딩테스트 > SQL' 카테고리의 다른 글
[프로그래머스/SELECT] - 모든 레코드 조회하기 (0) | 2023.03.14 |
---|---|
[프로그래머스/SELECT] - 3월에 태어난 여성 회원 목록 출력하기 (0) | 2023.03.13 |
댓글