본문 바로가기
DB/SQL

Oracle Pivot 함수

by 커피코더 2016. 4. 23.
반응형

Oracle Pivot 함수는 11g부터 제공 되는 기능으로 기존에는 decode를 사용하여 row를 column으로 변경하였던 것을 간단하게 pivot을 사용하여 처리 할 수 있다.

 

사용방법은

select * from(

  /** 조회 할 쿼리 */ 

pivot(

 집계함수

 for 코드 in (컬럼으로 사용할 row 값)

 

emp 테이블과 dept 테이블을 조회 하면 아래와 같다.

select e.deptno, dname, job, sal
from emp e, dept d
where e.deptno = d.deptno

 

 

 

위의 쿼리를 각 부서별 직위(JOB)의 합계를 구하기 위해 Pivot을 쓰면 아래와 같이 된다.

with temp as (
  select e.deptno, dname, job, sal
  from emp e, dept d
  where e.deptno = d.deptno
)
select * from (
  select dname, job, sal from temp
)
pivot(
  sum(sal)
  for dname in ('ACCOUNTING', 'OPERATIONS', 'RESEARCH', 'SALES')
)
order by job

 

 

 

반응형

'DB > SQL' 카테고리의 다른 글

[자격증] SQLD 시험 후기  (0) 2017.04.30
Oracle MERGE 문.  (0) 2016.04.17
IN 연산자  (0) 2016.04.05

댓글