【发布时间】:2018-04-12 09:25:19
【问题描述】:
我在 SQL Server 2014 中有这样的行:
id | fld1
---+-----
1 | 100
2 | 100
3 | 80
4 | 102
5 | 100
6 | 80
7 | 102
我需要一个 partition 在不改变顺序的情况下会返回:
NewFld | id | fld1
-------+----+------
1 | 1 | 100
1 | 2 | 100
2 | 3 | 80
3 | 4 | 102
1 | 5 | 100
2 | 6 | 80
3 | 7 | 102
Newfld 应该根据fld1 返回相同的值,而不改变id 给出的顺序。
我尝试使用 ROW_NUMBER、RANK、DENSE_RANK,但没有任何效果。
【问题讨论】:
-
那么,对于任何特定的
fld1值,如果您获得该值的MIN(id)值,并为这些不同的值分配行号,您会得到您需要的结果吗?跨度> -
您的问题现在解决了吗?您对这些答案还有疑问吗?要接受答案“Click the Tick”了解更多信息,请参阅help/accepting
标签: sql sql-server rank row-number dense-rank