ホームページ > データベース > mysql チュートリアル > SQL Server で複数の列を同時にピボットするにはどうすればよいですか?

SQL Server で複数の列を同時にピボットするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-31 09:29:09
オリジナル
926 人が閲覧しました

How to Pivot Multiple Columns Simultaneously in SQL Server?

SQL Server での複数の列のピボット

ピボットは、列のデータを行に配置できる SQL の変換手法です。このコンテキストでは、カテゴリ列を行にピボットし、各カテゴリの売上、在庫、目標値を表示することを目的としています。

サンプル入力:

Branch  Category  Sales  Stock  Target
Branch1 Panel     100    20     30
Branch1 AC        120    30     40
Branch1 Ref       150    40     50
ログイン後にコピー

望ましい出力:

Branch Panel AC Ref
Branch1 100 120 150
Branch1 20 30 40
Branch1 30 40 50

解決策:

目的の出力を達成するには、複数のピボットを実行する必要があります操作:

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
ログイン後にコピー

注:

  • 最初のサブクエリは、複数のピボットを準備するために、Category1 と Category2 を含む新しい名前を Category 列に割り当てます。
  • 後続のピボット操作では、これらの拡張列名を使用してそれぞれの行を作成しますcategory.
  • 集計は各カテゴリの値を合計するために列に適用されます。

さらに、pv3 で集計関数を使用して、必要に応じてデータをさらに集計することができます。

以上がSQL Server で複数の列を同時にピボットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート