问题描述
SELECT Line,ID,Enum
FROM tab1
结果是这样的:
Line id enum
A 10 1
A 10 2
A 10 3
A 10 4
...
B 20 4
B 20 5
B 20 6
B 20 7
...
我希望每个Line / id的anum以1开头,就像这样:
Line id enum
A 10 1
A 10 2
A 10 3
A 10 4
...
B 20 1
B 20 2
B 20 3
B 20 4
...
有什么想法吗?
解决方法
您需要一个诸如ROW_NUMBER()
之类的解析函数:
SELECT Line,ID,ROW_NUMBER() OVER (PARTITION BY Line ORDER BY Enum ) AS Enum
FROM tab1
该函数从整数1开始逐个枚举每个Enum
组的每个Line
值,并按当前存在的Enum
值进行排序
也许您需要按Line
和ID
进行分组,然后使用PARTITION BY Line,ID
而不是PARTITION BY Line
。
在这种情况下,两者都会产生相同的结果。