피벗(Pivot)과 언피벗(Unpivot)은 데이터 분석에서 자주 사용되는 두 가지 중요한 SQL 연산입니다. 피벗은 행 데이터를 열로 변환하여 요약된 형태로 표현하고, 언피벗은 그 반대로 열 데이터를 행으로 변환하여 더 세부적인 데이터를 표현합니다. 이를 통해 데이터의 시각화와 분석이 더 용이해집니다.
피벗 (Pivot)
피벗 연산은 데이터를 요약하거나 집계하여 행 데이터를 열로 변환합니다. 예를 들어, 여러 행에 분산된 데이터를 열로 정리하여 비교하기 쉽게 만드는 경우에 사용됩니다.
피벗 사용 예시 (SQL Server):
다음은 department_sales 테이블을 이용하여 각 부서의 연도별 매출 합계를 열로 변환하는 예제입니다.
SELECT department_id, [2019], [2020], [2021]
FROM (
SELECT department_id, sales_year, sales_amount
FROM department_sales
) AS SourceTable
PIVOT (
SUM(sales_amount)
FOR sales_year IN ([2019], [2020], [2021])
) AS PivotTable;
위의 쿼리는 다음과 같은 결과를 생성합니다:
department_id 2019 2020 2021
1 | 1000 | 1500 | 1300 |
2 | 2000 | 2500 | 2100 |
이 결과는 department_sales 테이블의 데이터를 피벗하여 각 부서의 연도별 매출 합계를 열로 표시한 것입니다.
언피벗 (Unpivot)
언피벗 연산은 피벗의 반대로, 열 데이터를 행으로 변환합니다. 이를 통해 여러 열에 분산된 데이터를 하나의 행 집합으로 결합하여 분석할 수 있습니다.
언피벗 사용 예시 (SQL Server):
다음은 피벗된 데이터를 다시 원래 형태로 복원하는 예제입니다.
SELECT department_id, sales_year, sales_amount
FROM (
SELECT department_id, [2019], [2020], [2021]
FROM PivotTable
) AS PivotedTable
UNPIVOT (
sales_amount FOR sales_year IN ([2019], [2020], [2021])
) AS UnpivotedTable;
위의 쿼리는 다음과 같은 결과를 생성합니다:
department_id sales_year sales_amount
1 | 2019 | 1000 |
1 | 2020 | 1500 |
1 | 2021 | 1300 |
2 | 2019 | 2000 |
2 | 2020 | 2500 |
2 | 2021 | 2100 |
이 결과는 피벗된 데이터를 언피벗하여 원래의 행 기반 데이터 구조로 복원한 것입니다.
피벗 및 언피벗의 활용
- 보고서 작성: 피벗을 사용하여 데이터를 요약하고 분석 보고서를 작성할 수 있습니다. 예를 들어, 분기별 매출 보고서를 작성할 때 피벗을 사용하면 각 분기별 매출을 열로 나열할 수 있습니다.
- 데이터 분석: 언피벗을 사용하여 다양한 열에 분산된 데이터를 하나의 분석 가능한 집합으로 통합할 수 있습니다. 이를 통해 더 심도 있는 데이터 분석이 가능합니다.
- 데이터 시각화: 피벗과 언피벗은 데이터를 그래프나 차트로 시각화하는 데 유용합니다. 피벗된 데이터는 막대 그래프나 히트맵으로 시각화하기 좋고, 언피벗된 데이터는 선 그래프나 산점도로 시각화하기 좋습니다.
피벗과 언피벗은 데이터베이스에서 데이터를 다양한 관점에서 분석하고 시각화하는 데 매우 유용한 도구입니다. 이를 효과적으로 사용하면 데이터의 이해도를 높이고 더 나은 인사이트를 도출할 수 있습니다.
'빅데이터 관련 자료 > [SQL] Basic' 카테고리의 다른 글
SQL: 데이터베이스의 언어 (0) | 2024.07.29 |
---|---|
SQL에서 JOIN의 종류와 사용 방법 (0) | 2024.07.09 |
PostgreSQL에서 테이블 컬럼 정보 조회하기 (0) | 2024.04.26 |
윈도우 프레임 SQL : ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING (0) | 2024.04.11 |
SQL에서의 FIRST_VALUE 함수: 활용과 예제 (0) | 2024.04.08 |