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