>데이터 베이스 >MySQL 튜토리얼 >SQL Server의 피벗 함수를 사용하여 행을 열로 변환하려면 어떻게해야합니까?

SQL Server의 피벗 함수를 사용하여 행을 열로 변환하려면 어떻게해야합니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-25 12:17:14754검색

How Can I Use SQL Server's PIVOT Function to Transform Rows into Columns?

데이터 변환을 위한 SQL Server의 PIVOT 기능 익히기

SQL Server의 PIVOT 기능은 향상된 분석 및 보고를 위해 행을 열로 변환하여 데이터를 재구성하는 강력한 방법을 제공합니다. 이는 보다 사용자 친화적인 표 형식으로 데이터를 표시해야 할 때 특히 유용합니다.

매장 번호, 주 번호, 판매량 열이 포함된 판매 수치를 저장하는 임시 테이블을 상상해 보세요. 이 데이터를 수직으로 나열된 매장과 수평으로 주를 표시하려면 다음 단계를 따르세요.

1. 동적으로 주 번호 식별

주 번호는 가변적이므로 먼저 데이터세트에 있는 고유한 주 번호를 확인해야 합니다. 이는 다음을 사용하여 달성할 수 있습니다.

<code class="language-sql">SELECT DISTINCT Week FROM yt;</code>

2. 동적 SQL 쿼리 구성

다음으로 동적 SQL 쿼리를 구성합니다. 여기에는 PIVOT 작업에 대한 열 이름이 포함된 문자열을 만드는 작업이 포함됩니다. 다음 코드는 이 문자열을 생성합니다.

<code class="language-sql">DECLARE @cols AS NVARCHAR(MAX),
    @query AS NVARCHAR(MAX);

SELECT @cols = STUFF((SELECT ',' + QUOTENAME(Week) 
                    FROM yt
                    GROUP BY Week
                    ORDER BY Week
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'');</code>

3. PIVOT 쿼리 작성

이제 동적으로 생성된 열 문자열을 통합하여 PIVOT 쿼리 자체를 작성합니다.

<code class="language-sql">SET @query = 'SELECT store,' + @cols + ' FROM 
             (
                SELECT store, week, xCount
                FROM yt
            ) x
            PIVOT 
            (
                SUM(xCount)
                FOR week IN (' + @cols + ')
            ) p;';</code>

4. PIVOT 쿼리 실행

마지막으로 다음을 사용하여 동적 PIVOT 쿼리를 실행합니다.

<code class="language-sql">EXECUTE(@query);</code>

결과:

첫 번째 열에 매장 번호를 표시하고 열 머리글에 주 번호를 표시하는 테이블이 출력됩니다. 해당 판매 금액이 테이블 셀에 채워져 원본 데이터를 효과적으로 요약합니다.

SQL Server의 PIVOT 기능을 활용하면 행 중심의 데이터를 보다 쉽게 ​​해석하고 분석할 수 있는 열 형식으로 효율적으로 변환하여 데이터 보고 및 분석 작업을 단순화할 수 있습니다.

위 내용은 SQL Server의 피벗 함수를 사용하여 행을 열로 변환하려면 어떻게해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.