在SQL Server 中透視多個欄位以實現最佳資料呈現
使用關聯式資料庫時,透視表可能是重塑資料的有效方法以便於分析和視覺化。在 SQL Server 中,當處理具有多個要顯示為行的列的資料表時,此技術特別有用。
問題陳述:
考慮以下範例table:
Branch | Category | Sales | Stock | Target ------- | ******** | ----- | ----- | ------- Branch1 | Panel | 100 | 200 | 300 Branch1 | AC | 150 | 250 | 350 Branch1 | Ref | 200 | 300 | 400
目標是透視類別欄位並將銷售、庫存和目標列顯示為行,產生以下結果輸出:
Branch | Panel | AC | Ref | ------- | ------ | -- | ---- | Branch1 | 100 | 150 | 200 |
解:
為了得到所需的輸出,我們可以在SQL Server中使用一系列的pivot語句。關鍵是重命名中間透視結果中的列,為後續的透視操作做準備。
考慮以下程式碼:
SELECT * FROM ( SELECT Branch, Category, Category+'1' As Category1, Category+'2' As Category2, Sales, Stock, Target FROM TblPivot ) AS P -- For Sales PIVOT ( SUM(Sales) FOR Category IN ([Panel], [AC], [Ref]) ) AS pv1 -- For Stock PIVOT ( SUM(Stock) FOR Category1 IN ([Panel1], [AC1], [Ref1]) ) AS pv2 -- For Target PIVOT ( SUM(Target) FOR Category2 IN ([Panel2], [AC2], [Ref2]) ) AS pv3 GO
此程式碼執行以下步驟:
產生的 pv3 表包含所需的輸出,其中類別為行,列代表銷售額、庫存和目標值。
以上是如何在 SQL Server 中透視多個欄位以實現最佳資料呈現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!