ORACLE - PIVOT and UNPIVOT

2025. 5. 23. 10:53·개발/ORACLE
728x90
반응형

데이터를 분석하다보면 행을 열로, 열을 행으로 바꾸는 작업이 필요할 때가 있다.

오라클에서는 쉽게 처리할 수 있도록 PIVOT과 UNPIVOT 기능을 제공한다.


PIVOT

PIVOT은 행 데이터를 열로 바꾸는 기능을 한다.

예로 월별 매출 데이터를 각 월로 정리하고 싶을때 유용하다.

컬럼을 각 월로 지정해도 되지만 복잡해진다.

 

PIVOT 예시 데이터 (SALES)

YEAR MONTH AMOUNT
2023 JAN 1000
2023 FEB 1200
2023 MAR 900

 

PIVOT SQL 예제

SELECT *
FROM (
	SELECT
    	YEAR
        , MONTH
        , AMOUNT
    FROM SALES
)
PIVOT (SUM(AMOUNT) FOR MONTH IN ('JAN' AS JAN, 'FEB' AS FEB, 'MAR' AS MAR))

 

PIVOT SQL 결과

YEAR JAN FEB MAR
2023 1000 1200 900

 

PIVOT 사용 팁

  • FOR MONTH IN (...) 부분은 열 이름이 고정되어야 한다.
  • AS를 통해 열 이름을 명시적으로 지정 가능
  • 대게 SUM, AVG 등 집계 함수와 함께 자주 사용

UNPIVOT

PIVOT과 반대로 열 데이터를 행으로 바꾸는 기능

보고서처럼 정리된 데이터를 다시 분석 가능한 형태로 바꿀 때 사용

 

UNPIVOT 예시 데이터 (PIVOTED_SALES)

YEAR JAN EFB MAR
2023 1000 1200 900

 

UNPIVOT SQL 예제

SELECT *
FROM PIVOTED_SALES
UNPIVOT (AMOUNT FOR MONTH IN (JAN AS 'JAN', FEB AS 'FEB', MAR AS 'MAR'));

 

UNPIVOT SQL 결과

YEAR MONTH AMOUNT
2023 JAN 1000
2023 FEB 1200
2023 MAR 900

 

UNPIVOT 사용 팁

  • FOR 컬럼명 IN (...) 안에 변환할 열 목록을 지정
  • 열 이름을 문자열로 지정할 수 있어 가독성 향상
728x90
반응형
저작자표시 (새창열림)

'개발 > ORACLE' 카테고리의 다른 글

ORACLE - WITH절(서브쿼리 팩터링)  (0) 2025.05.30
ORACLE - INSERT WITH절에 FUNCTION 사용시 오류 (ORA-32034)  (3) 2025.03.07
ORACLE - AUTO_INCREMENT 기능 구현  (0) 2025.01.20
ORACLE - ORA-25156 ANSI 조인, (+)  (2) 2024.11.20
Oracle 힌트절  (1) 2024.11.07
'개발/ORACLE' 카테고리의 다른 글
  • ORACLE - WITH절(서브쿼리 팩터링)
  • ORACLE - INSERT WITH절에 FUNCTION 사용시 오류 (ORA-32034)
  • ORACLE - AUTO_INCREMENT 기능 구현
  • ORACLE - ORA-25156 ANSI 조인, (+)
joolog
joolog
  • joolog
    JOO
    joolog
  • 전체
    오늘
    어제
    • 분류 전체보기 (165)
      • 개발 (83)
        • JAVA (29)
        • PYTHON (9)
        • AWS (15)
        • DOCKER (2)
        • PERCONA (2)
        • ORACLE (14)
        • MYSQL (1)
        • 알고리즘 (0)
        • 기타 (11)
      • 툴 (5)
        • MARKDOWN (1)
        • GIT (1)
        • DOCKER (1)
        • PyCharm (2)
        • IntelliJ (0)
      • 일상 (35)
        • 맛집 (6)
        • 카페 (2)
        • 요리 (4)
        • 글씨 연습 (2)
        • 그저 일상 (7)
        • 내돈 내산 (11)
        • 홍보 (1)
      • 국내 여행 (1)
      • 해외 여행 (15)
        • 체코-오스트리아 (10)
        • 일본 (5)
      • 암 일지 (26)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 관리
    • 티스토리 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    글씨연습
    오스트리아
    mysql
    Oracle
    jdbc
    자바
    잘츠부르크
    요양병원
    티스토리챌린지
    동위원소
    저요오드식
    성모샘쉼터
    히로시마
    자바JDBC
    재발
    갑상선 암
    체코
    오라클
    오블완
    오닉스 리프3
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
joolog
ORACLE - PIVOT and UNPIVOT
상단으로

티스토리툴바