반응형

오라클 11g 이후 추가된 피벗(Pivot) 함수를 이용하여 행으로 된 데이터를 열로 간단하게 변환 할 수 있습니다.

즉, 세로(행)로된 데이터를 가로(열)로 변환을 피벗 기능을 이용하면 간단 퀄리문으로 가능합니다.

다음과 같은 사원 정보가 있고 Job을 기준으로 봉급(Sal) 합계를 Pivot 함수로 열로 간단하게 표현해 보겠습니다.

▼ 사원정보

SELECT *
  FROM EMP

 

 

▼ 피벗 사용법

SELECT 컬럼
  FROM (
      기본 데이터 SELECT문 OR 테이블
  )
  PIVOT
  (
  	  집계함수(표현식) 
      FOR 피벗대상컬럼 IN (행 으로 표현할 열)
  );

 

▼ From 절에 조회된 데이터를 이용하여 PIVOT 하위에서 집계함수 , FOR, 가로로 표현할 컬럼명, 

가로로 표현할 데이터로 기술 하시면 됩니다.

SELECT *
FROM
(
   SELECT *
	 FROM EMP
)
PIVOT
(
    SUM(SAL) -- 집계(봉급) 함수
    FOR
    JOB IN ( 'PRESIDENT','MANAGER','ANALYST','CLERK','SALESMAN' ) -- 열(컬럼)으로 표현할 순서
);

 

 

▼ 집계함수로 행을 JOB 기준으로 줄여 봉급 합계가 명확해 졌습니다.

SELECT *
FROM
(
   SELECT JOB, NVL(SUM(SAL),0) AS SAL
	 FROM EMP
	GROUP BY JOB 
)
PIVOT
(
    SUM(SAL) -- 집계함수
    FOR
    JOB IN ( 'PRESIDENT','MANAGER','ANALYST','CLERK','SALESMAN' )
);

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기