반응형
오라클에서 [UNION ALL]은 중복을 제거하지 않습니다. 중복을 제거하려면 [UNION]을 사용해야 합니다.
UNION과 UNION ALL의 차이점
UNION
- 두 개 이상의 SELECT 문의 결과를 결합합니다.
- 중복되는 행을 자동으로 제거합니다.
- 중복을 확인하고 제거하는 과정 때문에 UNION ALL보다 처리 속도가 느립니다.
- 예시
SELECT employee_id FROM employees
UNION
SELECT employee_id FROM retired_employees;
※ 이 쿼리는 employees 테이블과 retired_employees 테이블에서 중복되는 employee_id를 하나만 남기고 모두 합쳐서 보여줍니다.
UNION ALL
- 두 개 이상의 SELECT 문의 결과를 결합합니다.
- 중복되는 행을 제거하지 않고 모두 포함시킵니다.
- 별도의 중복 제거 과정이 없으므로 UNION보다 처리 속도가 빠릅니다.
- 예시
SELECT product_name FROM products_2024
UNION ALL
SELECT product_name FROM products_2025;
※ 이 쿼리는 2024년과 2025년의 상품 목록을 합칠 때, 양쪽 테이블에 모두 존재하는 상품이더라도 중복을 제거하지 않고 그대로 모두 보여줍니다.
결과
- 중복 제거가 필요하지 않고 모든 행을 그대로 합치고 싶다면 성능이 더 좋은 UNION ALL을 사용
- 중복된 행을 하나로 합쳐서 보고 싶다면 UNION을 사용
반응형
'db > oracle' 카테고리의 다른 글
| 오라클 숫자 앞에 0 추가, LPAD (0) | 2025.09.13 |
|---|---|
| oracle connect by level 함수 (0) | 2025.09.13 |
| oracle ORA-32044 (0) | 2025.09.13 |
| oracle 10초 마다 저장 하기[통계] (0) | 2025.09.13 |
| Oracle 카멜 변환 INITCAP (0) | 2025.04.05 |