UNION , UNION ALL

양혜정·2024년 3월 5일

Oracle

목록 보기
22/49

UNION

  • 테이블(뷰)과 테이블(뷰)를 합쳐서 보여주는 것
  • 특징 : 중복된 행 제거, 항상 오름차순

특징 - 오름차순 정렬

-> 최근 3개월 간 판매되어진 정보를 통해 제품별 판매량의 합계

select *
from tbl_panmae_202401  -- 1달 전 데이터

UNION

select *
from tbl_panmae_202312  -- 2달 전 데이터

UNION

select *
from tbl_panmae;       -- 이번달 데이터

-- 위치에 상관없이 항상 첫번째 컬럼을 기준으로 오름차순 정렬된다.

특징 - 별칭

-> 최근 3개월 간 판매되어진 정보를 통해 제품별 판매량의 합계
★ 주의 : 컬럼의 순서는 동일해야 한다.

select panmaedate, jepumname, panmaesu 
from tbl_panmae_202401  -- 1달 전 데이터

UNION

select panmaedate as 판매일자, jepumname as 제품명
	, panmaesu as 판매량
from tbl_panmae_202312  -- 2달 전 데이터
    
UNION
    
select panmaedate as "1", jepumname as "2", panmaesu as "3"
from tbl_panmae;
-- 별칭은 항상 처음 select 구문에 있는 것을 사용한다.
-- 다른 별칭은 있어도 사용 X

UNION ALL

  • 테이블(뷰)과 테이블(뷰)를 합쳐서 보여주는 것
  • 특징 : 중복된 행 제거 X, 정렬 X
    => 올바른 데이터 집계에 적합!! (UNION 은 부적합)

-> 최근 3개월 간 판매되어진 정보를 통해 제품별 판매량의 합계
★ 주의 : 컬럼의 순서는 동일해야 한다.

WITH
V AS
(
    select jepumname, panmaesu
    from tbl_panmae_202312   -- 2달 전 데이터
    
    UNION ALL
    
    select jepumname, panmaesu
    from tbl_panmae_202401   -- 1달 전 데이터
    
    UNION ALL
        
    select jepumname, panmaesu
    from tbl_panmae          -- 이번달 데이터 
)
SELECT V.jepumname as 제품명, sum(panmaesu) as 판매량
FROM V
GROUP BY V.jepumname
ORDER BY 1;

정리

-> local_hr에서작업한것

0개의 댓글