반응형
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
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
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 |
댓글