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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-04 01:42:40868ブラウズ

How Can I Dynamically Pivot Multiple Columns in SQL Server?

SQL Server での複数の列を使用した動的ピボット

SQL Server では、データをピボットすることで行を列に入れ替えることができ、より直感的なデータが可能になります分析。複数の列を扱う場合、動的アプローチを採用すると、列名や値の変更に対応できます。

データのピボット解除

複数の列でデータを動的にピボットするには、まずピボットを解除します。 UNPIVOT 関数または CROSS APPLY を使用して、関連する列を削除します。このプロセスにより、複数の列が行に変換され、操作が容易になります。

動的 PIVOT 関数

ピボットを解除すると、PIVOT 関数を使用してピボット テーブルを作成できます。ただし、PIVOT 関数の列名はピボットされていないデータと一致している必要があります。これを動的に実現するには、次の手順を使用して列の値をそれぞれのメタデータと連結します。

  1. ピボットする列を選択し、連結された名前を @cols 変数に指定します。
  2. 連結された列名を組み込んで @query 変数に動的クエリを構築します。
  3. 使用sp_executesql を使用して動的 SQL クエリを実行し、ピボットされた結果を取得します。

年、タイプ、合計、およびボリュームの列を含む次のサンプル テーブルについて考えてみましょう。 :

ID YEAR TYPE TOTAL VOLUME
DD1 2008 A 1000 10
DD1 2008 B 2000 20
DD1 2008 C 3000 30

動的ピボット アプローチを使用すると、次の構造を持つピボット テーブル:

ID 2008_A_Total 2008_A_Volume 2008_B_Total 2008_B_Volume 2008_C_Total 2008_C_Volume
DD1 1000 10 2000 20 3000 30

アンピボット手法と動的ピボット手法を組み合わせることで、SQL Server のさまざまな列を含むデータを効果的に変換および分析できます。

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

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