首頁 >資料庫 >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 中透視多個欄位

使用關聯式資料庫時,通常需要轉換資料以使其更易於分析或報告。實現此目的的一種方法是旋轉數據,這涉及將行旋轉為列,反之亦然。

考慮下表,其中包含財務比率、結果、分數和成績:

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

要旋轉此數據並保留所有標籤,我們需要對結果、分數和成績列進行逆透視,以便每一行在每一列中都有一個值。這可以使用 UNPIVOT 函數或 CROSS APPLY 來實現,具體取決於您使用的 SQL Server 版本。

資料取消透視後,我們可以應用 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;

產生的輸出將是一個表格,其中每個比率佔一行,當前比率、負債比率、績效比率、總計、分數和等級:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn