1
A
回答
1
试试下面的语句:
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
表,你会得到这样的事情:
这是由于有更多区域经理分数值度量类型。您可以尝试这些ranking functions以找到最适合您的需求排名。
相关问题
- 1. tsql - 如何透视下表?
- 2. 透视和逆透视与TSQL
- 3. TSQL数据透视长列表
- 4. SQL 2000 TSQL - 创建数据透视表
- 5. 如何为GtkEventBox提供透明背景?
- 6. TSQL PIVOT具有多个透视列和未透视列?
- 7. 列总计,tSQL数据透视
- 8. TSQL中的数据透视记录
- 9. TSQL透视变换行字段 - >列
- 10. TSQL 2008年逆透视XML属性
- 11. 如何给引导列表组提供透明背景?
- 12. 如何透视表行到
- 13. 数据透视表与VBA
- 14. 如何添加透视表的数据透视表
- 15. 数据透视表与数据透视表高速缓存
- 16. 透视对于透视表
- 17. 如何合并透视图像(3D Transform)?
- 18. 如何加入已经加入透视表与另一个表
- 19. 数据透视表提示重复值
- 20. Android:DDMS透视与调试透视
- 21. TSQL While循环与合并
- 22. 如何在Dagger2中提供视图?
- 23. 如何创建数据透视表并使用VBA命名它?
- 24. 与数据透视表合并更改列名
- 25. 数据透视表与合并日期字段
- 26. 将多个数据透视表合并到另一个数据透视表
- 27. 透视表
- 28. 透视表
- 29. 透视表
- 30. 透视表
这称为[* unpivot *](https://technet.microsoft.com/en-us/library/ms177410(v = sql.105).aspx)。 –