PIVOT を使用して SQL Server でデータを変換する
SQL Server の PIVOT 操作を使用すると、データをワイド フォーマットからトール フォーマットに変換できます。により、データの要約と分析が容易になります。これは、行と列で編成されたデータを、各列が特定の属性を表し、各行がその属性の特定の値を表す形式に変換するシナリオで特に役立ちます。
シナリオの例は次のとおりです。ワイド形式のデータを持つ次のデータセットを次の形式に変換します:
Name1 | Name2 | Value -------|-------|------- A | P1 | 1 A | P2 | 1 A | P3 | 2 B | P1 | 3 B | P2 | 1 B | P4 | 1
次の形式に変換します:
A B P1 1 4 P2 1 1 P3 2 NULL P4 NULL 1
これを実現するにはSQL Server 2005 での変換では、次のコードを使用できます。
DECLARE @cols VARCHAR(1000) DECLARE @sqlquery VARCHAR(2000) SELECT @cols = STUFF(( SELECT distinct ',' + QuoteName([Name1]) FROM myTable FOR XML PATH('') ), 1, 1, '') SET @sqlquery = 'SELECT * FROM (SELECT Name2, Name1, Value FROM myTable ) base PIVOT (Sum(Value) FOR [Name1] IN (' + @cols + ')) AS finalpivot' EXECUTE ( @sqlquery )
このコードは、Name1 列の一意の値に基づいて PIVOT クエリを動的に組み立てます。まず、個別の Name1 値をカンマ区切りのリストに連結し、それを PIVOT ステートメントで使用して新しい列を作成します。 SUM() 集計関数は、各行 (Name2) 内の各属性 (Name1) の合計値を計算します。
結果は、目的の Tall 形式で変換されたデータセットになります。ここで、各列は Name1 属性を表し、各列はそれぞれを表します行には、その属性に対応する合計値が含まれます。この形式は、より簡潔で組織化されたデータのビューを提供することで、データの分析と要約を容易にします。
以上がSQL Server の PIVOT 関数はどのようにして広範なデータをより分析しやすい形式に変換できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。