首頁 >資料庫 >mysql教程 >如何在 SQL Server 中透視多個欄位以實現最佳資料呈現?

如何在 SQL Server 中透視多個欄位以實現最佳資料呈現?

Susan Sarandon
Susan Sarandon原創
2024-12-31 18:21:12181瀏覽

How to Pivot Multiple Columns in SQL Server for Optimal Data Presentation?

在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

此程式碼執行以下步驟:

  1. 準備資料:它重命名了Category 欄位並新增了兩個附加列,Category1和Category2,以方便後續資料透視。
  2. 銷售資料透視: 第一個資料透視語句建立 pv1 表,該表對每個類別的銷售額進行求和。
  3. Pivot for Stock: 第二個資料透視語句建立 pv2 表,該表對每個資料的庫存求和類別。
  4. 透視目標:第三個透視語句建立 pv3 表,該表對每個類別的目標求和。

產生的 pv3 表包含所需的輸出,其中類別為行,列代表銷售額、庫存和目標值。

以上是如何在 SQL Server 中透視多個欄位以實現最佳資料呈現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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