ホームページ > データベース > mysql チュートリアル > T-SQL で複数の列を効率的にピボットする方法

T-SQL で複数の列を効率的にピボットする方法

Linda Hamilton
リリース: 2025-01-05 00:54:43
オリジナル
872 人が閲覧しました

How to Pivot Multiple Columns in T-SQL Efficiently?

TSQL で複数の列をピボットする方法

TSQL でテーブルをピボットするには、行を列に再配置する必要があります。ただし、複数の列を扱う場合は、すべてのラベルを保持することが重要です。

データのピボット解除

まず、複数のデータ列があるため、それらのピボットを解除することをお勧めします。単一の列にまとめます。これは、SQL Server のバージョンに応じて、UNPIVOT 関数または CROSS APPLY メソッドを使用して実現できます。アンピボットの構文は次のとおりです。

select ratio, col, value
from GRAND_TOTALS
cross apply
(
  select 'result', cast(result as varchar(10)) union all
  select 'score', cast(score as varchar(10)) union all
  select 'grade', grade
) c(col, value)
ログイン後にコピー

ピボットの実行

データのピボットが解除されたら、PIVOT 関数を適用して必要に応じて列を再配置できます。構文は次のようになります:

select ratio = col,
  [current ratio], [gearing ratio], [performance ratio], total
from
(
  select ratio, col, value
  from GRAND_TOTALS
  cross apply
  (
    select 'result', cast(result as varchar(10)) union all
    select 'score', cast(score as varchar(10)) union all
    select 'grade', grade
  ) c(col, value)
) d
pivot
(
  max(value)
  for ratio in ([current ratio], [gearing ratio], [performance ratio], total)
) piv;
ログイン後にコピー

Result

これにより、目的の出力が生成されます:

|  RATIO | CURRENT RATIO | GEARING RATIO | PERFORMANCE RATIO |     TOTAL |
|--------|---------------|---------------|-------------------|-----------|
|  grade |          Good |          Good |      Satisfactory |      Good |
| result |       1.29400 |       0.33840 |           0.04270 |    (null) |
|  score |      60.00000 |      70.00000 |          50.00000 | 180.00000 |
ログイン後にコピー

以上がT-SQL で複数の列を効率的にピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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