基于单个列 SQL Server 2008 R2 重置 Row_Number(或类似的东西)

Reset Row_Number (Or Something Like It) Based On a Single Column SQL Server 2008 R2

我需要使用序号填充 table 中名为 LBSEQ 的列,每次名为 SUBJID 的列的值更改时,该序号都会重置为 1。未指定顺序 - 它不是按时间顺序排列的,也不依赖于任何其他列(尽管 table 中还有其他列)。所以想要的是:

    SUBJID LBSEQ 
    001        1
    001        2
    001        3
    001        4
    002        1
    002        2
    002        3
    003        1

等等。似乎我应该能够使用 ROW_NUMBER() 但我不知道如何让它为每个新的 SUBJID 重置为 1。我搜索了这个问题,但 none 的答案似乎适用于我的情况。任何帮助表示赞赏。

为此,您只需使用 PARTITION BY:

SELECT SUBJID, 
       ROW_NUMBER() OVER(PARTITION BY SUBJID ORDER BY SUBJID) LBSEQ
FROM dbo.YourTable;