본문 바로가기

Data Literacy/SQL

Chapter 3. 집합 연산자와 서브쿼리 - (2) UNION과 합집합 3

PostgreSQL logo image

 

 

○ UNION ALL 사용하기

 

지금까지 알아본 UNION의 속성은, 일단 '합집합'이라는 기본 개념을 베이스로 동작하게 됩니다. 그리고 이 성질의 가장 큰 특징은 자연스럽게 중복되는 테이블의 데이터를 생략한다는 점이지요. 우리가 배웠었던 SELECT DISTINCT에서 DISTINCT 쿼리가 디폴트로 적용된다고 생각하시면 됩니다. 

 

 

 

Chapter 3. 집합 연산자와 서브쿼리 - (2) UNION과 합집합 2

앞선 아티클에서 우리는 관계형 데이터베이스의 전반적인 용어의 개념과, 이를 바탕으로 합집합 개념인 UNION에 대해서 살펴보았습니다. Chapter 3. 집합 연산자와 서브쿼리 - (2) UNION과 합집합 1 우

nozeroslope.tistory.com

 

 

하지만 상황에 따라서, 테이블에서 UNION을 사용한다고 하더라도 중복되는 데이터를 모두 그대로 살려두어야 하는 경우도 있을 것입니다. 이럴 때 사용하는 쿼리가 바로 UNION ALL 입니다. 참고로, UNION ALL을 사용하게 되면 성능의 관점에서 DISTINCT 처리가 없어지게 되니 더 빠른 처리가 가능하다고 볼 수 있습니다. 만일 중복이 전혀 없는 데이터를 처리한다면 UNION ALL을 사용하는 것이 좀 더 빠르다고 볼 수 있겠네요.

 

 

 


 

 

앞서서 만들었던 sales2023_1과 sales2023_2 테이블을 사용하겠습니다. 일단 이 두 개의 테이블 전체를 UNION ALL로 출력해 보겠습니다.

 

select *
  from sales2023_1 
union all
select *
  from sales2023_2;

 

 

 

 

아래와 같이 특정 칼럼만을 지정해서 사용하는 것도 당연히 가능합니다. NAME, AMOUNT만 각각 사용해 보겠습니다.

 

select name
  from sales2023_1 
union all
select name
  from sales2023_2;

 

 

 

 

select amount 
  from sales2023_1 
union all
select amount
  from sales2023_2;