ホームページ >データベース >mysql チュートリアル >複数の PIVOT ステートメントを使用して SQL Server の複数の列をピボットする方法

複数の PIVOT ステートメントを使用して SQL Server の複数の列をピボットする方法

DDD
DDDオリジナル
2025-01-03 16:55:41788ブラウズ

How to Pivot Multiple Columns in SQL Server Using Multiple PIVOT Statements?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。