SQL Server での列変換の詳細ガイド
多数のメトリック列を含むテーブルを操作する場合、これらの列を行に変換すると、分析やレポート作成に非常に役立ちます。この変換には、データを再構築して、異なるスキーマを持つ新しいテーブルを作成することが含まれます。
問題の説明
次のテーブル スキーマを考えてみましょう:
<code>[ID] [EntityID] [Indicator1] [Indicator2] [Indicator3] ... [Indicator150]</code>
目標は、これらのメトリック列を行に変換し、次のスキーマを持つ新しいテーブルを作成することです:
<code>[ID] [EntityId] [IndicatorName] [IndicatorValue]</code>
UNPIVOT を使用したソリューション
このタスクを達成するための洗練されたソリューションは、UNPIVOT 関数を利用することです。 UNPIVOT の構文は次のとおりです:
<code>UNPIVOT ([unpivot column] FOR [pivot column] IN ([pivot values]))</code>
この例では、アンピボット列はインジケーター値 (たとえば、「Indicator1」、「Indicator2」など) を表し、ピボット列は列名自体を表します。次のクエリは、UNPIVOT の使用方法を示しています:
<code>select id, entityId, indicatorname, indicatorvalue from yourtable unpivot ( indicatorvalue for indicatorname in (Indicator1, Indicator2, Indicator3) ) unpiv;</code>
このクエリを実行すると、メトリクス列が行に変換され、メトリクスの名前と値が新しい列に入力されます。
代替案
UNPIVOT 以外にも、列を行に変換する方法は他にもあります。
ソリューションの選択は、特定のニーズと使用する SQL Server のバージョンによって異なります。
以上がSQL Server で列を行に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。