SQL 피벗 및 언피벗 pivot unpivot
Data Analyst

빅데이터 관련 자료/[SQL] Basic

SQL 피벗 및 언피벗 pivot unpivot

carpe08 2024. 5. 20. 14:17
320x100
320x100

피벗(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

이 결과는 피벗된 데이터를 언피벗하여 원래의 행 기반 데이터 구조로 복원한 것입니다.

피벗 및 언피벗의 활용

  1. 보고서 작성: 피벗을 사용하여 데이터를 요약하고 분석 보고서를 작성할 수 있습니다. 예를 들어, 분기별 매출 보고서를 작성할 때 피벗을 사용하면 각 분기별 매출을 열로 나열할 수 있습니다.
  2. 데이터 분석: 언피벗을 사용하여 다양한 열에 분산된 데이터를 하나의 분석 가능한 집합으로 통합할 수 있습니다. 이를 통해 더 심도 있는 데이터 분석이 가능합니다.
  3. 데이터 시각화: 피벗과 언피벗은 데이터를 그래프나 차트로 시각화하는 데 유용합니다. 피벗된 데이터는 막대 그래프나 히트맵으로 시각화하기 좋고, 언피벗된 데이터는 선 그래프나 산점도로 시각화하기 좋습니다.

피벗과 언피벗은 데이터베이스에서 데이터를 다양한 관점에서 분석하고 시각화하는 데 매우 유용한 도구입니다. 이를 효과적으로 사용하면 데이터의 이해도를 높이고 더 나은 인사이트를 도출할 수 있습니다.

320x100
320x100