PIVOT 은 행으로 쌓인 데이터를 열로 펼쳐 교차표(요약표)를 만드는 기능이고, UNPIVOT 은 그 반대로 열을 행으로 되돌립니다. 시험은 결과 교차표 예측 과 PIVOT에 집계 함수가 필수 라는 점을 묻습니다.
이 단원, 시험에서 어디에 나오나
- 제2과목 「SQL 기본 및 활용」 단원(비교적 최근 추가)입니다.
- PIVOT/UNPIVOT의 방향 과 집계 함수·
FOR … IN구문 이 출제 포인트입니다.
① PIVOT — 행을 열로
그림 1. 세로로 쌓인 분기 매출을 Q1·Q2·Q3 열로 펼칩니다. 값은 집계 함수(SUM 등)로 만듭니다. (자작 도식)
SELECT * FROM 매출
PIVOT ( SUM(매출) FOR 분기 IN ('Q1', 'Q2', 'Q3') );
- 집계 함수 필수: PIVOT의 값 자리에는
SUM·COUNT등 집계 함수가 반드시 들어갑니다. FOR 컬럼 IN (값들): 펼칠 값을 나열합니다.- IN 목록에 없는 값 은 결과 열에서 빠집니다.
② UNPIVOT — 열을 행으로
그림 2. 펼쳐진 열(Q1·Q2·Q3)을 (분기, 매출) 두 열의 여러 행으로 되돌립니다. (자작 도식)
- PIVOT의 반대 — 여러 열을 (이름 열, 값 열) 형태의 행으로 바꿉니다.
- 집계는 없고 구조만 세로로 되돌립니다.
자주 틀리는 함정
- PIVOT에 집계 함수 누락 → 오류. 값은 반드시 집계 함수로.
- IN 목록 누락 — 나열하지 않은 값은 결과에 안 나옴.
- PIVOT ↔ UNPIVOT 방향 혼동 — PIVOT=행→열(가로로 넓게), UNPIVOT=열→행(세로로 길게).
- UNPIVOT이 값을 합친다고 오인 — UNPIVOT은 집계가 아니라 구조 변환.
한 장 정리 (암기 카드)
- PIVOT: 행 → 열(교차표), 집계 함수 필수,
FOR 컬럼 IN (값들). - UNPIVOT: 열 → 행(되돌리기), 집계 없음.
- IN 목록에 없는 값은 제외.
참고 출처
- 시험 과목·출제기준: 한국데이터산업진흥원(KDATA) 데이터자격검정 (2026년 7월 확인)
- PIVOT·UNPIVOT 동작은 오라클·표준 SQL에 근거하며, 본문 설명·예시·도식은 자작입니다.