一尘不染

组上的递增行号

sql

我正在为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

我的问题是如何使第一个索引仅在“阴影”列中的值更改时才递增?


阅读 156

收藏
2021-03-17

共1个答案

一尘不染

可以通过以下DENSE_RANK()功能实现:

  DENSE_RANK() OVER(Order By [shade]) as t_index
2021-03-17