首页 文章

SQL添加行号

提问于
浏览
1

我正在寻找一种添加行号的方法,但是当其中一列重复时添加重复的行号

逻辑*每次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)从Table1

2 回答

  • 6

    使用 DENSE_RANK()

    SELECT Col1, Col2,
        DENSE_RANK() OVER (PARTITION BY Col1 ORDER BY Col2) RowNo
    FROM yourTable;
    ORDER BY Col1, Col2;
    

    enter image description here

    演示

  • 0

    您可以在 col1 列上使用 row_number 窗口函数进行分区,并在 col2 上进行排序

    select t.*,
        row_number() over (partition by col1 order by col2) as col3
    from your_table t;
    

相关问题