문제

풀이
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
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 LIKE '2022-03%'
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID
두 테이블을 다루는 문제이기 때문에 join을 사용해야 하는줄 알았지만 UNION을 사용하는 문제였다.
* UNION 연산자와 UNION ALL 연산자는 두 개이상에 SQL 쿼리를 하나로 만들어주지만 차이나는 부분은 중복여부이다. 또한 UNION 연산자를 사용할 시에는 각 쿼리에 컬럼 갯수 및 명칭을 맞춰줘야한다
NOTE
- NULL값을 USER_ID로 명칭을 맞춰줘야함.
- UNION 할 SELECT 쿼리에 ORDER BY절이 포함되어 있으면 에러 발생한다. (괄호를 사용해 다시 select * 해주면 오류를 해결할 수 있다함. )
'SQLD' 카테고리의 다른 글
[SQLD][프로그래머스] 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2023.10.03 |
---|---|
[SQLD][프로그래머스] 12세 이하인 여자 환자 목록 출력하기 (0) | 2023.09.29 |
[SQLD][프로그래머스] 흉부외과 또는 일반외과 의사 목록 출력하기 (0) | 2023.09.26 |
[SQLD][프로그래머스] 조건에 맞는 도서 리스트 출력하기 (0) | 2023.09.26 |
[SQLD][프로그래머스] 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2023.09.25 |
문제

풀이
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
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 LIKE '2022-03%'
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID
두 테이블을 다루는 문제이기 때문에 join을 사용해야 하는줄 알았지만 UNION을 사용하는 문제였다.
* UNION 연산자와 UNION ALL 연산자는 두 개이상에 SQL 쿼리를 하나로 만들어주지만 차이나는 부분은 중복여부이다. 또한 UNION 연산자를 사용할 시에는 각 쿼리에 컬럼 갯수 및 명칭을 맞춰줘야한다
NOTE
- NULL값을 USER_ID로 명칭을 맞춰줘야함.
- UNION 할 SELECT 쿼리에 ORDER BY절이 포함되어 있으면 에러 발생한다. (괄호를 사용해 다시 select * 해주면 오류를 해결할 수 있다함. )
'SQLD' 카테고리의 다른 글
[SQLD][프로그래머스] 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2023.10.03 |
---|---|
[SQLD][프로그래머스] 12세 이하인 여자 환자 목록 출력하기 (0) | 2023.09.29 |
[SQLD][프로그래머스] 흉부외과 또는 일반외과 의사 목록 출력하기 (0) | 2023.09.26 |
[SQLD][프로그래머스] 조건에 맞는 도서 리스트 출력하기 (0) | 2023.09.26 |
[SQLD][프로그래머스] 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2023.09.25 |