기술 정보
home
채널 소개
home

PIVOT 함수 활용 방법

문서 유형
기술 정보
분야
관리/환경설정
키워드
decode
pivot
적용 제품 버전
6FS07
7FS02PS

개요

PIVOT 함수는 행을 열로 바꿔주는 역할로, PIVOT 기능을 이용하면 DECODE의 복잡하고 비 직관적인 코드를 조금 더 직관적으로 작성할 수 있습니다. 다만, PIVOT 기능을 사용하더라도 PIVOT을 수행할 컬럼을 미리 정의해 놓아야 하므로 상황에 따라 PIVOT 또는 DECODE 중 적합한 방식을 선택해 사용하시기 바랍니다.
참고
Tibero는 6 버전부터 PVIOT, DECODE 기능을 모두 제공합니다.

방법

문법

SELECT * FROM ( 피벗 대상 쿼리문 ) PIVOT ( 그룹합수(집계컬럼) FOR 피벗컬럼 IN (피벗컬럼값 AS 별칭 ... )
SQL
복사

예제

--직군별, 월별 입사 건수 SELECT * FROM ( SELECT job , TO_CHAR(hiredate, 'FMMM') || '월' hire_month FROM emp ) PIVOT ( COUNT(*) FOR hire_month IN ('1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월') ) --직군별, 부서코드별 급여 합계 (피벗컬럼 별칭 사용) SELECT job , d1 , d2 , d3 FROM ( SELECT job , deptno , sal FROM emp ) PIVOT ( SUM(sal) FOR deptno IN ('10' AS d1, '20' AS d2, '30' AS d3) ) --DECODE 직군별, 월별 입사 건수 → pivot이 훨씬 직관적입니다. SELECT job , SUM(DECODE(TO_CHAR(hiredate, 'FMMM'), '1', 1, 0)) "1월" , SUM(DECODE(TO_CHAR(hiredate, 'FMMM'), '2', 1, 0)) "2월" , SUM(DECODE(TO_CHAR(hiredate, 'FMMM'), '3', 1, 0)) "3월" , SUM(DECODE(TO_CHAR(hiredate, 'FMMM'), '4', 1, 0)) "4월" , SUM(DECODE(TO_CHAR(hiredate, 'FMMM'), '5', 1, 0)) "5월" , SUM(DECODE(TO_CHAR(hiredate, 'FMMM'), '6', 1, 0)) "6월" , SUM(DECODE(TO_CHAR(hiredate, 'FMMM'), '7', 1, 0)) "7월" , SUM(DECODE(TO_CHAR(hiredate, 'FMMM'), '8', 1, 0)) "8월" , SUM(DECODE(TO_CHAR(hiredate, 'FMMM'), '9', 1, 0)) "9월" , SUM(DECODE(TO_CHAR(hiredate, 'FMMM'), '10', 1, 0)) "10월" , SUM(DECODE(TO_CHAR(hiredate, 'FMMM'), '11', 1, 0)) "11월" , SUM(DECODE(TO_CHAR(hiredate, 'FMMM'), '12', 1, 0)) "12월" FROM emp GROUP BY job
SQL
복사