ホームページ >データベース >mysql チュートリアル >T-SQL の複数の列をピボットして財務比率データを変換する方法

T-SQL の複数の列をピボットして財務比率データを変換する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-05 01:54:47260ブラウズ

How to Pivot Multiple Columns in T-SQL to Transform Financial Ratio Data?

TSQL での複数の列のピボット

リレーショナル データベースを使用する場合、多くの場合、分析や分析を容易にするためにデータを変換する必要があります。について報告します。これを行う 1 つの方法は、データをピボットすることです。これには、行を列に、またはその逆に回転することが含まれます。

財務比率、結果、スコア、成績を含む次の表を考えてみましょう:

RATIO RESULT SCORE GRADE
Current Ratio 1.294 60 Good
Gearing Ratio 0.3384 70 Good
Performance Ratio 0.0427 50 Satisfactory
TOTAL NULL 180 Good

このデータをピボットしてすべてのラベルを保持するには、結果、スコア、評定の列のピボットを解除して、各行に各列に 1 つの値が含まれるようにする必要があります。これは、使用している SQL Server のバージョンに応じて、UNPIVOT 関数または CROSS APPLY を使用して実現できます。

データのピボットが解除されたら、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;

結果の出力は、比率ごとに 1 つの行と、現在の比率、ギアリング比率、パフォーマンス比率、合計、スコア、およびスコアの列を含むテーブルになります。グレード:

RATIO CURRENT RATIO GEARING RATIO PERFORMANCE RATIO TOTAL SCORE GRADE
grade Good Good Satisfactory Good NULL NULL
result 1.29400 0.33840 0.04270 NULL NULL NULL
score 60.00000 70.00000 50.00000 180.00000 NULL NULL

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

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