我正在尝试更新表中的列,以便Index列(当前是任意数字)从1000开始按顺序重新编号,增量为10,并且每次组更改时此序列都会重新启动。
我已尝试使用PARTITION的ROWNUMBER()并尝试定义SEQUENCE,但我似乎无法得到我正在寻找的结果。
表1
ID Group Index
1 A 1
2 A 2
3 B 3
4 B 4
5 B 5
6 C 6
7 D 7
我想要的: 表1
ID Group Index
1 A 1000
2 A 1010
3 B 1000
4 B 1010
5 B 1020
6 C 1000
7 D 1000
答案 0 :(得分:1)
您可以使用row_number()
进行一些算术运算:
select t.*,
990 + 10 * row_number() over (partition by group order by id) as index
from t;
请注意group
和index
是SQL保留字,因此它们的列名非常糟糕。