SQL Serverの列変換に関する詳細なガイド
多数のメトリック列を含むテーブルを処理する場合、これらの列を行に変換することは、分析と報告の目的に非常に有益です。この変換では、データを再構築して、異なるスキーマを持つ新しいテーブルを作成します。
問題ステートメント
次のテーブル構造を検討してください:
[ID] [EntityID] [Indicator1] [Indicator2] [Indicator3] ... [Indicator150]
目標は、これらのメトリック列を行に変換することで、次のスキーマを使用して新しいテーブルを作成することです。
[ID] [EntityId] [IndicatorName] [IndicatorValue]
ソリューションを使用している
このタスクを達成するためのエレガントなソリューションは、unpivot関数を活用することです。 Unpivotの構文は次のとおりです。
UNPIVOT ([unpivot column] FOR [pivot column] IN ([pivot values]))
この例では、unpivot列はインジケータ値(たとえば、「indicator1」、「indicator2」など)を表し、ピボット列は列名自体を表します。次のクエリは、unpivotの使用方法を示しています:
select id, entityId,
indicatorname,
indicatorvalue
from yourtable
unpivot
(
indicatorvalue
for indicatorname in (Indicator1, Indicator2, Indicator3)
) unpiv;
このクエリを実行することにより、メトリック列は行に変換され、メトリック名と値に新しい列が入力されます。
代替
unpivotに加えて、列を行に変換する他の方法があります:
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3