
PIVOT
- 행 데이터를 열 데이터로 변환
- 예시 (EMPLOYEE 테이블)
| DEPT | JOB | SALARY |
| Sales | Manager | 5000 |
| Sales | Clerk | 1500 |
| IT | Manager | 4000 |
| IT | Clerk | 2000 |
위의 데이터를 PIVOT을 사용하여 각 부서별로 JOB을 열로 변환하고 SALARY를 표시해보자.
SELECT *
FROM (
SELECT DEPT, JOB, SALARY
FROM employee
)
PIVOT (
SUM(SALARY)
FOR JOB IN ('Manager' AS MANAGER, 'Clerk' AS CLERK)
);
- 결과
| DEPT | MANAGER | CLERK |
| Sales | 5000 | 1500 |
| IT | 4000 | 2000 |
UNPIVOT
- 열 데이터를 행 데이터로 변환
- 예시 (DEPARTMENT_SALARY)
| DEPT | MANAGER | CLERK |
| Sales | 5000 | 1500 |
| IT | 4000 | 2000 |
위의 PIVOT 된 테이블을 UNPIVOT을 사용하여 원래의 형식으로 되돌릴 수 있다.
SELECT DEPT, JOB, SALARY
FROM (
SELECT DEPT, MANAGER, CLERK
FROM department_salary
)
UNPIVOT (
SALARY FOR JOB IN (MANAGER AS 'Manager', CLERK AS 'Clerk')
);
- 결과
| DEPT | JOB | SALARY |
| Sales | Manager | 5000 |
| Sales | Clerk | 1500 |
| IT | Manager | 4000 |
| IT | Clerk | 2000 |
'Database' 카테고리의 다른 글
| [데이터베이스] 정규화 과정 (0) | 2024.11.03 |
|---|