ホームページ >データベース >mysql チュートリアル >複数の PIVOT ステートメントを使用して SQL Server の複数の列をピボットする方法
データが行と列に配置されているデータベース テーブルでは、行を次のように切り替えてテーブル構造を変換する必要がある場合があります。列。この手法はピボットとして知られています。
シナリオ:
支店、カテゴリ、売上、在庫、ターゲットなどの列を含むサンプル テーブルがあります。カテゴリ列を使用してテーブルをピボットし、残りの列 (Sales、Stock、Target) を行として配置するとします。目的の出力には、カテゴリが列として、値が行として含まれている必要があります。
解決策:
テーブルをピボットするには、適切な列名を変更した複数の PIVOT ステートメントを使用できます。
SELECT * FROM ( SELECT Branch, Category, Category+'1' As Category1, Category+'2' As Category2, Sales, Stock, Target FROM TblPivot ) AS P -- For Sales PIVOT ( SUM(Sales) FOR Category IN ([Panel], [AC], [Ref]) ) AS pv1 -- For Stock PIVOT ( SUM(Stock) FOR Category1 IN ([Panel1], [AC1], [Ref1]) ) AS pv2 -- For Target PIVOT ( SUM(Target) FOR Category2 IN ([Panel2], [AC2], [Ref2]) ) AS pv3 GO
列名を変更する (例: カテゴリ '1' とカテゴリ) '2')、PIVOT ステートメントが正しく機能することを確認できます。
中間テーブル (pv1、pv2、pv3) は、それぞれ Sales、Stock、Target のピボット データを提供します。その後、pv3 の結果を集計してグループ化し、必要に応じて値を合計することができます。
以上が複数の PIVOT ステートメントを使用して SQL Server の複数の列をピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。