我正在为SQL Server 2005查询,该查询需要返回带有两个“索引”字段的数据。每当“ shade”列更改时,第一个索引“ t_index”应递增,而在“ shade”列中的值分区内,第二个索引应递增:
t_index s_index shade 1 1 A 1 2 A 1 3 A 1 4 A 1 5 A 2 1 B 2 2 B 2 3 B 2 4 B 2 5 B
要获取s_index列,我使用以下方法:
Select ROW_NUMBER() OVER(PARTITION BY [shade] ORDER BY [shade]) as s_index
我的问题是如何使第一个索引仅在“阴影”列中的值更改时才递增?
可以通过以下DENSE_RANK()功能实现:
DENSE_RANK()
DENSE_RANK() OVER(Order By [shade]) as t_index