반응형
오라클 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' )
);
반응형
'IT > SQL' 카테고리의 다른 글
Oracle - TRIM, LTRIM, RTRIM 함수 (문자, 공백 제거) (0) | 2020.05.06 |
---|---|
Oracle Null 치환 함수 - NVL, NVL2, NULLIF, COALESCE (2) | 2020.05.05 |
Oracle 조회 컬럼명 별칭 적용 (0) | 2020.05.03 |
Oracle - 조회 순번 부여하기 (ROWNUM, RANK, DENSE_RANK, ROW_NUMBER 이용) (0) | 2020.05.02 |
최근댓글