inblog logo
|
DailyCoding
    SQLD

    2-2-7. PIVOT절과 UNPIVOT절

    박은서's avatar
    박은서
    Mar 01, 2026
    2-2-7. PIVOT절과 UNPIVOT절
    Contents
    1. PIVOT 절1️⃣ PIVOT 절의 기초 개념2. UNPIVOT 절1️⃣ UNPIVOT 절의 기초 개념

    1. PIVOT 절

    1️⃣ PIVOT 절의 기초 개념

    1) PIVOT 절

    • 테이블의 행을 칼럼으로 변환하여 데이터의 형태 바꿈
    • 데이터 요약 및 보고서 작성에 매우 유용함
    • PIVOT 절을 사용하여 특정 칼럼의 고유 값을 새로운 칼럼으로 만들고, 그 칼럼에 해당하는 데이터 집계할 수 있음

    2) PIVOT 절의 형식

    SELECT 칼럼명 FROM ( SELECT [피벗할 원본 칼럼] FROM [피벗할 원본 테이블] ) AS [원본 테이블 별칭] PIVOT ( 집계 함수( [집계할 칼럼] ) FOR [피벗 완료된 칼럼명] IN ( [피벗할 칼럼들의 값] ... ) ) AS [피벗 테이블 별칭];

    3) PIVOT 절의 예

    SELECT * FROM ( SELECT DEPTNO, JOB, EMPNO FROM EMP ) PIVOT ( COUNT(EMPNO) FOR JOB IN ('CLERK', 'SALESMAN', 'MANAGER', 'ANALYST', 'PRESIDENT') );
    DEPTNO
    CLERK
    SALESMAN
    MANAGER
    ANALYST
    PRESIDENT
    10
    1
    0
    1
    0
    1
    20
    1
    4
    1
    0
    0
    20
    2
    0
    1
    2
    0

    2. UNPIVOT 절

    1️⃣ UNPIVOT 절의 기초 개념

    1) UNPIVOT 절

    • 칼럼 데이터를 행 데이터로 변환하는 데 사용됨
    • PIVOT 절과 반대

    2) UNPIVOT 절의 형식

    SELECT 칼럼명 FROM ( SELECT [피벗할 원본 칼럼] FROM [피벗할 원본 테이블] ) AS [원본 테이블 별칭] UNPIVOT ( [언피벗할 칼럼] FOR [피벗 완료된 칼럼명] IN ( [반환할 칼럼#1], [반환할 칼럼#2], ... ) ) AS [언피벗 테이블 별칭];

    3) UNPIVOT 절의 예

    • 임의의 PIVOT ‘EMP_PIVOT’테이블 생성
      • CREATE TABLE EMP_PIVOT AS SELECT * FROM ( SELECT JOB, DEPTNO, SAL FROM EMP WHERE JOB IN ('CLERK', 'MANAGER') ) PIVOT ( SUM(SAL) AS SAL, COUNT(*) AS CNT FOR DEPTNO IN (10 AS DEPT10_ACCOUNTING, 20 AS DEPT20_RESEARCH) );
        JOB
        DEPT10_ ACCOUNTING_SAL
        DEPT10_ ACCOUNTING_CNT
        DEPT20_ RESEARCH_SAL
        DEPT20_ RESEARCH_CNT
        CLERK
        1300
        1
        1900
        2
        MANAGER
        2450
        1
        2975
        1
    • EMP_PIVOT 테이블을 UNPIVOT 하기
      • SELECT JOB, DEPTNO, SAL FROM EMP_PIVOT UNPIVOT ( SAL FOR DEPTNO IN (DEPT10_ACCOUNTING_SAL, DEPT20_RESEARCH_SAL) ) ORDER BY JOB, DEPTNO;
        JOB
        DEPTNO
        SAL
        CLERK
        DEPT10_ACCOUNTING_SAL
        1300
        CLERK
        DEPT20_RESEARCH_SAL
        1900
        MANAGER
        DEPT10_ACCOUNTING_SAL
        2450
        MANAGER
        DEPT20_RESEARCH_SAL
        2975
    Share article
    Contents
    1. PIVOT 절1️⃣ PIVOT 절의 기초 개념2. UNPIVOT 절1️⃣ UNPIVOT 절의 기초 개념

    DailyCoding

    RSS·Powered by Inblog