SQL 기본 및 활용

24. PIVOT·UNPIVOT — SQLD, 행과 열을 뒤집는 교차표

CBT 전자문제집 편집팀
#SQLD#PIVOT#UNPIVOT#교차표#집계

PIVOT행으로 쌓인 데이터를 열로 펼쳐 교차표(요약표)를 만드는 기능이고, UNPIVOT 은 그 반대로 열을 행으로 되돌립니다. 시험은 결과 교차표 예측PIVOT에 집계 함수가 필수 라는 점을 묻습니다.

이 단원, 시험에서 어디에 나오나

  • 제2과목 「SQL 기본 및 활용」 단원(비교적 최근 추가)입니다.
  • PIVOT/UNPIVOT의 방향집계 함수·FOR … IN 구문 이 출제 포인트입니다.

① PIVOT — 행을 열로

PIVOT 도식. 분기별 매출이 세로로 쌓인 표를 Q1·Q2·Q3 열로 펼치는 과정

그림 1. 세로로 쌓인 분기 매출을 Q1·Q2·Q3 열로 펼칩니다. 값은 집계 함수(SUM 등)로 만듭니다. (자작 도식)

SELECT * FROM 매출
PIVOT ( SUM(매출) FOR 분기 IN ('Q1', 'Q2', 'Q3') );
  • 집계 함수 필수: PIVOT의 값 자리에는 SUM·COUNT집계 함수가 반드시 들어갑니다.
  • FOR 컬럼 IN (값들): 펼칠 값을 나열합니다.
  • IN 목록에 없는 값 은 결과 열에서 빠집니다.

② UNPIVOT — 열을 행으로

UNPIVOT 도식. Q1·Q2·Q3 열로 펼쳐진 표를 분기·매출 두 열의 세로 표로 되돌리는 과정

그림 2. 펼쳐진 열(Q1·Q2·Q3)을 (분기, 매출) 두 열의 여러 행으로 되돌립니다. (자작 도식)

  • PIVOT의 반대 — 여러 열을 (이름 열, 값 열) 형태의 행으로 바꿉니다.
  • 집계는 없고 구조만 세로로 되돌립니다.

자주 틀리는 함정

  • PIVOT에 집계 함수 누락 → 오류. 값은 반드시 집계 함수로.
  • IN 목록 누락 — 나열하지 않은 값은 결과에 안 나옴.
  • PIVOT ↔ UNPIVOT 방향 혼동 — PIVOT=행→열(가로로 넓게), UNPIVOT=열→행(세로로 길게).
  • UNPIVOT이 값을 합친다고 오인 — UNPIVOT은 집계가 아니라 구조 변환.

한 장 정리 (암기 카드)

  • PIVOT: 행 → 열(교차표), 집계 함수 필수, FOR 컬럼 IN (값들).
  • UNPIVOT: 열 → 행(되돌리기), 집계 없음.
  • IN 목록에 없는 값은 제외.

참고 출처

CBT 전자문제집 편집팀

자격증 개념과 기출 유형을 쉽게 정리합니다.

관련 글