SQLD

시험 직전 요약장

판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.

이론 목록

PIVOT·UNPIVOT: 행과 열 전환

원래 이론 →

판단 기준

PIVOT 문제는 먼저 집계할 값, 열로 바꿀 구분값, 행으로 남을 그룹 기준을 나눈다. PIVOT (SUM(금액) FOR 분기 IN ('1Q' AS Q1, '2Q' AS Q2))에서 금액은 집계 대상, 분기는 열 전환 기준이며, 입력 집합에 남은 다른 컬럼은 암묵적인 GROUP BY 기준이 된다. 불필요한 컬럼이 입력 집합에 남으면 예상보다 행이 여러 개로 나뉠 수 있으므로 PIVOT 전에 필요한 컬럼만 선택한다.

UNPIVOT (금액 FOR 분기 IN (Q1 AS '1Q', Q2 AS '2Q'))는 여러 열을 이름·값 행으로 되돌린다. 기본 동작에서는 값이 NULL인 행이 제외될 수 있고, 보존해야 한다면 INCLUDE NULLS를 명시한다.

SQL
SELECT 상품ID, 분기, 금액
FROM 분기매출
UNPIVOT INCLUDE NULLS (
  금액 FOR 분기 IN (Q1 AS '1Q', Q2 AS '2Q')
);

PIVOT을 지원하지 않는 DBMS에서는 조건부 집계로 같은 결과를 만들 수 있다.

SQL
SELECT 상품ID,
       SUM(CASE WHEN 분기 = '1Q' THEN 금액 END) AS Q1,
       SUM(CASE WHEN 분기 = '2Q' THEN 금액 END) AS Q2
FROM 매출
GROUP BY 상품ID;

시험에서는 PIVOT의 FOR가 열로 전환할 값을, IN이 생성할 열 목록을 지정한다는 점과 UNPIVOT이 원본 값을 복원하는 역연산이 아니라 열을 행 구조로 재표현하는 연산이라는 점을 구분한다.

이 부분의 원문 →

내 최근 연습 오답

현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.

학습 기록 →

오답 기록을 확인하고 있습니다.