본문 바로가기

SQL

[MYSQL] UNION, DATE_FORMAT

반응형

https://school.programmers.co.kr/learn/courses/30/lessons/131537

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

(
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

 

 

UNION

  • 두 개 이상의 SELECT 쿼리 결과를 결합하는 데 사용.
  • 각 쿼리의 결과 집합을 수직으로 결합하여 하나의 결과 집합으로 생성.
  • 결합되는 각 SELECT 쿼리는 동일한 열 수와 호환되는 데이터 유형을 가져야 함.

 

두 쿼리를 결합하기 위해 각 열의 개수를 맞췄고, USER_ID가 존재하지 않는 OFFLINE_SALE 테이블은 NULL로 채워진 새로운 열을 만들고 열 이름을 USER_ID로 지정해서 ONLINE_SALE 테이블과 결합될 수 있도록 했다.

 

* bigquery 등의 환경에서는 DATE_FORMAT 대신 FORMAT_DATE를 사용한다.

반응형

'SQL' 카테고리의 다른 글

[MYSQL] INTERSECT (교집합)  (0) 2024.08.07
[MYSQL] MAX 주의사항  (0) 2024.08.07
[MYSQL] WITH, JOIN, CASE, 집계 함수  (0) 2024.08.04
[MYSQL] 3개의 테이블 JOIN  (0) 2024.08.04
[MYSQL] PERCENT_RANK()  (0) 2024.08.04