如何透视 table 并使用 TSQL 提供排名
How to Pivot table and provide Ranking with TSQL
如何从以下格式转换 table:
转换为以下所需格式:
如果有人能帮我解决这个问题,那将是非常大的帮助
注意:我使用的是 SQL Server 2008 R2
尝试以下语句:
DECLARE @DataSource TABLE
(
[RegionalManager] CHAR(1)
,[ATVScore] SMALLINT
,[BTVScore] SMALLINT
,[CTVScore] SMALLINT
,[DTVScore] SMALLINT
);
INSERT INTO @DataSource ([RegionalManager], [ATVScore], [BTVScore], [CTVScore], [DTVScore])
VALUES ('A', 75, 56, 34, 567)
,('B', 36, 678, 5, 36)
,('C', 61, 67, 56, 61)
--,('A', 71, 71, 71, 71)
--,('B', 36, 36, 36, 36)
--,('C', 61, 61, 61, 61)
--,('A', 71, 71, 71, 71)
--,('B', 36, 36, 36, 36)
--,('C', 61, 61, 61, 61);
SELECT UNPVT.[RegionalManager]
,UNPVT.[MeasureName]
,UNPVT.[Score]
,ROW_NUMBER() OVER (PARTITION BY UNPVT.[MeasureName] ORDER BY UNPVT.[Score] DESC) AS [Rank]
FROM @DataSource
UNPIVOT
(
[Score] FOR [MeasureName] IN ([ATVScore], [BTVScore], [CTVScore], [DTVScore])
) UNPVT
ORDER BY UNPVT.[MeasureName]
,UNPVT.[RegionalManager];
请注意,如果您取消注释将值插入 @DataSource
table,您将得到如下内容:
这是由于 ATVScore
度量类型的区域经理得分值较多所致。您可以尝试这些 ranking functions 以找到最适合您需求的排名。
如何从以下格式转换 table:
转换为以下所需格式:
如果有人能帮我解决这个问题,那将是非常大的帮助
注意:我使用的是 SQL Server 2008 R2
尝试以下语句:
DECLARE @DataSource TABLE
(
[RegionalManager] CHAR(1)
,[ATVScore] SMALLINT
,[BTVScore] SMALLINT
,[CTVScore] SMALLINT
,[DTVScore] SMALLINT
);
INSERT INTO @DataSource ([RegionalManager], [ATVScore], [BTVScore], [CTVScore], [DTVScore])
VALUES ('A', 75, 56, 34, 567)
,('B', 36, 678, 5, 36)
,('C', 61, 67, 56, 61)
--,('A', 71, 71, 71, 71)
--,('B', 36, 36, 36, 36)
--,('C', 61, 61, 61, 61)
--,('A', 71, 71, 71, 71)
--,('B', 36, 36, 36, 36)
--,('C', 61, 61, 61, 61);
SELECT UNPVT.[RegionalManager]
,UNPVT.[MeasureName]
,UNPVT.[Score]
,ROW_NUMBER() OVER (PARTITION BY UNPVT.[MeasureName] ORDER BY UNPVT.[Score] DESC) AS [Rank]
FROM @DataSource
UNPIVOT
(
[Score] FOR [MeasureName] IN ([ATVScore], [BTVScore], [CTVScore], [DTVScore])
) UNPVT
ORDER BY UNPVT.[MeasureName]
,UNPVT.[RegionalManager];
请注意,如果您取消注释将值插入 @DataSource
table,您将得到如下内容:
这是由于 ATVScore
度量类型的区域经理得分值较多所致。您可以尝试这些 ranking functions 以找到最适合您需求的排名。