PIVOT과 UNPIVOT은 SQL에서 데이터를 행(row)과 열(column) 간 변환하는 기능을 제공하는 절입니다.
이 기능은 MSSQL, Oracle 등 일부 RDBMS에서 지원하며,
MySQL과 PostgreSQL에서는 CASE WHEN 또는 GROUP BY 등을 사용하여 유사한 기능을 구현할 수 있습니다.
PIVOT은 특정 열의 고유한 값을 새로운 컬럼으로 변환하는 기능을 합니다.
SELECT *
FROM (원본 테이블)
PIVOT (
집계함수(집계할 컬럼)
FOR 피벗할 컬럼 IN (변환할 컬럼1, 변환할 컬럼2, ...)
) AS 별칭; | emp_id | year | salary |
|---|---|---|
| 101 | 2021 | 50000 |
| 101 | 2022 | 55000 |
| 102 | 2021 | 60000 |
| 102 | 2022 | 65000 |
SELECT *
FROM (SELECT emp_id, year, salary FROM salaries) AS src
PIVOT (
SUM(salary) FOR year IN ([2021], [2022])
) AS pvt; | emp_id | 2021 | 2022 |
|---|---|---|
| 101 | 50000 | 55000 |
| 102 | 60000 | 65000 |
✅ 각 연도를 새로운 컬럼으로 변환하여 출력
UNPIVOT은 여러 열을 하나의 행으로 변환하는 기능을 합니다.
SELECT *
FROM (변환할 테이블)
UNPIVOT (
변환할 컬럼 FOR 컬럼명 IN (컬럼1, 컬럼2, ...)
) AS 별칭; | emp_id | 2021 | 2022 |
|---|---|---|
| 101 | 50000 | 55000 |
| 102 | 60000 | 65000 |
SELECT emp_id, year, salary
FROM (SELECT emp_id, [2021], [2022] FROM salaries) AS src
UNPIVOT (
salary FOR year IN ([2021], [2022])
) AS unpvt; | emp_id | year | salary |
|---|---|---|
| 101 | 2021 | 50000 |
| 101 | 2022 | 55000 |
| 102 | 2021 | 60000 |
| 102 | 2022 | 65000 |
✅ 원래의 행 기반 데이터로 복원됨
MySQL과 PostgreSQL에는 PIVOT/UNPIVOT 절이 없으므로 CASE WHEN 또는 GROUP BY를 활용하여 유사한 변환을 수행합니다.
SELECT
emp_id,
SUM(CASE WHEN year = 2021 THEN salary END) AS "2021",
SUM(CASE WHEN year = 2022 THEN salary END) AS "2022"
FROM salaries
GROUP BY emp_id; SELECT emp_id, '2021' AS year, "2021" AS salary FROM salaries
UNION ALL
SELECT emp_id, '2022', "2022" FROM salaries; ✅ PIVOT과 UNPIVOT을 CASE WHEN, UNION ALL을 사용하여 구현 가능
| 기능 | 설명 | 주요 사용 사례 |
|---|---|---|
| PIVOT | 행 데이터를 열로 변환 | 연도별, 카테고리별 집계 데이터 |
| UNPIVOT | 열 데이터를 행으로 변환 | 정규화(Normalization), 데이터 분석 |
CASE WHEN과 UNION ALL을 활용.코스피 8% 폭락, 서킷브레이커 발동, SK텔레콤 Claude AI 차단까지. 한국의 AI 레버리지 버블이 단 하루…
SNS 사진 1장으로 30초 만에 딥페이크 영상이 완성됩니다. 당신의 얼굴이 이미 범죄에 악용되고 있을 수…
SNS 사진 1장으로 30초 만에 딥페이크 영상이 완성됩니다. 당신의 얼굴이 이미 범죄에 악용되고 있을 수…
달러/원 환율이 급등하는 이유와 실생활 영향을 정리했습니다. 지금 당장 활용할 수 있는 환전·투자 대응 전략까지…
미래에셋·미래에셋벤처투자·미래에셋생명이 동반 급등한 이유는 스페이스X 상장 기대감입니다. 세 회사가 스페이스X와 어떻게 연결되어 있는지 상세히 분석했습니다.
스페이스X 상장이 계속 미뤄지는 진짜 이유를 파헤쳤습니다. 화성 계획, 스타링크 분리, 국방 계약... 머스크가 절대…