我有一個 MS SQL Server 表,如下所示:
示例 SQL 表結構
我的每一行都有員工,一些列描述了他們,然后是我擁有的Quota和Achievement用于財政季度的列。
您可以猜到,將添加新的會計季度,每個季度的員工都不會相同。
對我來說,要使用 Tableau 中的資料,這將是所需的格式:
所需格式
我想將員工保留為單獨的行,將他們的描述列保留為列,但將配額和成就匯總為一列,并為每個單獨的季度單獨行。
如果一個簡單的解決方案需要,我可以有一個可能的財政季度串列,這些串列稍后會顯示為列。
我一直在閱讀有關動態樞軸的資訊,因為我想這將是我的解決方案,但由于我對 UNPIVOT 功能非常陌生,因此無法實作這種格式。
任何指導將不勝感激
uj5u.com熱心網友回復:
這是一個嚴重非規范化的結構,但如果這是你必須使用的......
您可以先使用 聚合所有列FOR JSON,然后使用OPENJSON
SELECT
t.EmployeeID,
upv.*
FROM YourTable t
CROSS APPLY (
SELECT t.*
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
) j(json)
CROSS APPLY (
SELECT
[Fiscal Quarter] = LEFT(j2.[key], 7),
Quota = SUM(CASE WHEN j2.[key] LIKE '%Quota' THEN CAST(j2.value AS int) END),
Achievement = SUM(CASE WHEN j2.[key] LIKE '
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344756.html
標籤:sql sql-server 转置 转轴 动态枢轴
