SQL

[MYSQL] UNION, DATE_FORMAT

choiwonjin 2024. 8. 4. 18:49
반응형

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를 사용한다.

반응형