dev/데이터베이스

Oracle Pivot

tiqndjd12 2024. 6. 25. 19:59

오라클에서 여러 행의 특정 컬럼을 하나의 행으로 조회하려면 Pivot을 사용하면 됩니다.

 

예제 테이블

 

예제 테이블의 CODE 컬럼 기준으로 집계하여 Pivot을 통해 COL1, COL2 컬럼 합계를 구하겠습니다.

 

Pivot 예제 쿼리 및 결과

 

위의 예제 쿼리를 설명하면

 

서브 쿼리에서 CODE 컬럼 기준으로 집계하여 COL1, COL2 컬럼의 합계를 구합니다.(8 ~ 13라인)

 

서브 쿼리 결과를 Pivot에서 변환합니다.(14 ~ 23라인)

 

앞의 서브 쿼리에서 CODE 컬럼 기준으로 COL1, COL2 합계값을 구했기 때문에

 

MAX(COL1_SUM), MAX(COL2_SUM)을 통해서 Pivot에서 값을 구합니다.

 

FOR CODE IN을 통해 각 CODE 별 컬럼을 생성합니다.

 

여기서 CODE는 SQL 예약어가 아니라 예제 테이블의 컬럼명입니다.

 

쿼리를 실행하면 각 열에 대한 합계값을 조회할 수 있습니다.