✳️ UNION / UNION ALL - 합집합
- 수평 결합을 해주는 JOIN과 달리 위 아래로 데이터를 수직 결합을 해주는 기능
- 컬럼의 수와 데이터 타입이 동일해야 수행 가능
- UNION ALL이 정렬이 들어가지 않기 때문에 더 빠르고 가성비가 좋다고 함
- UNION은 정렬 후 중복 제거를 하는 과정 중, using temporary를 하는데 임시 저장소에 담았다는 것이다. 이 과정이 성능상 좋지 않다고 한다.
⭐ UNION
- 두 개 이상의 SELECT 문의 결과를 결합하는 데 사용
- 중복 행은 하나로 간주(중복 행 제거)
SELECT A
FROM B
WHERE
UNION
SELECT A
FROM C
WHERE
⭐ UNION ALL
- UNION과 거의 동일하지만 중복 행을 제거 하지 않음
SELECT A
FROM B
WHERE
UNION ALL
SELECT A
FROM C
WHERE
결합 후 결과들을 정렬할 때는 맨 마지막에 ORDER BY 를 써주면서 정렬 해주면 된다.
(아래 예시-코드카타 문제 71번)
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 ALL
SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE
, PRODUCT_ID
, NULL
, SALES_AMOUNT
FROM OFFLINE_SALE
WHERE SALES_DATE LIKE '2022-03%'
ORDER BY 1, 2, 3;
'📒 Today I Learn > 🐬 SQL' 카테고리의 다른 글
[SQL] 날짜 관련 함수 정리 (0) | 2024.07.04 |
---|---|
[SQL] WITH 절 (0) | 2024.07.03 |
[SQL] COALESCE ( ) (0) | 2024.07.02 |
[SQL] 문자열에 공백 넣기, CONCAT_WS, NULL과 공백값 구분, NULLIF와 IFNULL (0) | 2024.07.02 |
[SQL] Window 함수 (0) | 2024.07.01 |