我正在寻找一种添加行号的方法,但是当其中一列重复时添加重复的行号
逻辑 *每次Col1总是从1开始RowNo *每次Col1 + Col2都相同时使用相同的RowNo
表1
Col1 Col2
1 A
1 B
1 B
2 C
2 D
2 E
3 F
4 G
输出应为
Col1 Col2 RowNo
1 A 1
1 B 2
1 B 2
2 C 1
2 D 2
2 E 3
3 F 1
4 G 1
我试过,但输出不正确 选择col1,col2 ,row_number()over(分区由(col1 + col2)按col1排序) 来自表1
答案 0 :(得分:6)
使用DENSE_RANK()
:
SELECT Col1, Col2,
DENSE_RANK() OVER (PARTITION BY Col1 ORDER BY Col2) RowNo
FROM yourTable;
ORDER BY Col1, Col2;
答案 1 :(得分:0)
您可以使用row_number
窗口功能对col1
列进行分区,并在col2
上进行排序
select t.*,
row_number() over (partition by col1 order by col2) as col3
from your_table t;