【发布时间】:2021-12-03 01:11:34
【问题描述】:
我需要根据日期为行分配数字。规则是将相同的编号分配给具有相同日期的多个连续行。当一行的日期值与前一行的日期值不同时,数字会增加。结果集看起来像这样(第一列将用于确定行顺序):
1 7/1/2021 1
2 7/2/2021 2
3 7/2/2021 2
4 7/1/2021 3
5 7/2/2021 4
在这种情况下,日期的值不相关。正如你所看到的,有相同日期的重复被分配了不同的数值,因为它们不连续。我正在努力弄清楚我将如何做到这一点。
【问题讨论】:
-
我确实看过,但它产生了错误的结果。 DENSE_RANK() OVER (ORDER BY [TheDate]) 给了我一个 1,2,2,1,2 而不是 1,2,2,3,4 的序列。我错过了什么?
-
这个问题没有意义。行没有固有的顺序,所以不清楚“连续”是什么意思。投票结束。注意:如果您添加了另一个额外的列作为排序标准,那么这个问题就有意义了。
-
@RussSuter - SQL 集本质上是无序的,如果您希望这 5 行按该顺序出现(并按该顺序排列),您必须 在
ORDER BY中使用另一列。您是否有任何其他列可以让您强制执行您在问题中使用的顺序? -
不,要求我们假设会解决问题。请编辑您的问题并明确添加必要的列以强制执行该排序。您的问题必须是 complete (如“最低限度完整示例”) 与 all 所需资料:meta.stackoverflow.com/questions/366988/what-does-mcve-mean
标签: sql sql-server tsql