SQLD 시험 대비

SQLD PIVOT / UNPIVOT

_김영인 2026. 3. 3. 17:49

1. PIVOT이란?

행 (Row) 데이터를 열 (Column) 데이터로 변환하는 기능이다.

세로 데이터를 가로로 펼치는 것이다.

 

기본 문법

SELECT *
FROM (
    SELECT 기준컬럼, 집계대상컬럼
    FROM 테이블
)
PIVOT (
    집계함수(집계컬럼)
    FOR 변환기준컬럼 IN (값1, 값2, 값3)
);

 

예제 (EMP + DEPT)

SELECT *
FROM (
    SELECT E.JOB, D.DNAME
    FROM EMP E, DEPT D
    WHERE E.DEPTNO = D.DEPTNO
)
PIVOT (
    COUNT(*) 
    FOR DNAME IN ('ACCOUNTING', 'RESEARCH', 'SALES')
);

 

동작 설명:

  1. EMP와 DEPT를 조인한다
  2. 직급 (JOB)별로
  3. 부서 (DNAME)를 열로 바꾸면서
  4. COUNT로 집계한다

PIVOT 핵심 포인트

  • GROUP BY가 자동 적용되는 구조
  • 집계 함수 반드시 필요 (COUNT, SUM 등)
  • IN 절에 들어가는 값은 고정 값

 

2. UNPIVOT이란?

 

열 데이터를 행 데이터로 변환하는 기능이다.

가로 데이터를 세로로 푸는 것이다.

이런 데이터를

직급 Y2022 Y2023 Y2024
사원 4 5 2
대리 1 1 2

이렇게 바꾸고 싶다

직급 연도 인원
사원 Y2022 4
사원 Y2023 5
사원 Y2024 2
대리 Y2022 1
대리 Y2023 1
대리 Y2024 2

 

이게 바로 UNPIVOT이다.

 

기본 문법

SELECT *
FROM 테이블
UNPIVOT (
    값컬럼
    FOR 기준컬럼 IN (컬럼1, 컬럼2, 컬럼3)
);

 

예제

SELECT *
FROM 급여테이블
UNPIVOT (
    인원
    FOR 연도 IN (
        Y2022 AS 'Y2022',
        Y2023 AS 'Y2023',
        Y2024 AS 'Y2024'
    )
);

 

UNPIVOT 핵심 포인트

  • 열을 여러 행으로 분해
  • 집계 함수 필요 없음
  • 분석, GROUP BY 전처리에 매우 유용

 

3. 실전 예제 (계절 / 연도 데이터 변환)

 

원래 데이터 (가로 구조)

계절 2018 2019 2020 2021 2022
12.9 12.5 12 12.8 13.2

 

UNPIVOT 적용 후

계절 연도 기온
2018 12.9
2019 12.5

 

이 구조는 이후 GROUP BY 계절, 연도 같은 분석이 쉬워진다.


 

4. 시험에 잘 나오는 유형

 

Q. 아래 그림과 같은 동작을 수행하는 것은?

 

왼쪽: 연도별 열 / 오른쪽: 연도가 행으로 변환됨

 

정답 → UNPIVOT


 

5. PIVOT vs UNPIVOT 비교 정리

구분 PIVOT UNPIVOT
방향 행 → 열 열 → 행
집계 필요 O X
목적 보고서용 가로 데이터 분석용 세로 데이터
GROUP BY 내부적으로 수행 이후 적용 가능

 

6. 실무에서 언제 쓰는가?

 

PIVOT

  • 월별 매출을 열로 표현
  • 부서별 인원 수 가로 보고서
  • 엑셀 보고서 스타일 출력

 

UNPIVOT

  • 통계 분석 전 데이터 정규화
  • 머신러닝 전처리
  • GROUP BY 분석 전 구조 통일

 

7. 실무 핵심 정리

  • 보고서용이면 → PIVOT
  • 분석용이면 → UNPIVOT
  • 데이터 구조가 복잡할수록 UNPIVOT이 훨씬 중요
  • PIVOT은 집계 중심, UNPIVOT은 구조 변환 중심

 

PIVOT과 UNPIVOT은 단순히 시험용 문법이 아니다.

실무에서는 데이터 가공 능력의 핵심이다.

특히 BI, 통계, 로그 분석, 매출 분석 같은 영역에서는 UNPIVOT을 얼마나 자연스럽게 쓰는지가 실력을 가른다.

'SQLD 시험 대비' 카테고리의 다른 글

SQLD 함정 문제 TOP 20  (0) 2026.03.05
SQLD 정규표현식  (0) 2026.03.04
SQLD 계층형 질의와 셀프 조인  (0) 2026.03.02
SQLD Top N 쿼리  (0) 2026.03.01
SQLD 윈도우 함수  (0) 2026.02.28