sql - 增加组上的行号

标签 sql sql-server sql-server-2005

我正在处理 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() OVER(Order By [shade]) as t_index

关于sql - 增加组上的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11116275/

相关文章:

java - 有没有类似preparedStatement.setDefault()的东西?

sql-server - 在 MS SQL Server 2005 中,当同一 SP 的不同执行访问临时表时会发生什么情况?

php - 从由引用表连接的两个表中选择?

.net - NLP/任务。回答-从数据库检索信息

sql - 如何仅在表中的字段更改值之前对表中的字段进行分组(SQL Server)

sql - 我该如何处理这个泛化设计问题?

sql - DATEADD的这三种用法有什么区别吗?

asp.net - 在点击事件后插入数千条记录的最有效方法是什么?

MySQL 日期问题 - 如何计算?

sql - 使用日期过滤 SQL Server 中的记录