使用 ROW_NUMBER() 对数据集进行分区

Using ROW_NUMBER() to Partition DataSets

我对在 SQL 中使用 ROW_NUMBER() 有点困惑。

有一个当前如下所示的数据集:

 Number ID
    1   1
    2   6
    3   11

我在下面写了一个查询:

SELECT rownum = ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Number), Number
FROM #SEQNUMBERSTEMP

给出输出:

rownum  Number
1       1
1       2
1       3
1       4
1       5
1       6
1       1
1       2
1       3
1       4
1       1

但我想达到以下目的:

rownum  Number
1       1
1       2
1       3
1       4
1       5
2       1    # Note 2 should start at position 6
2       2
2       3
2       4
2       5
3       1    # Note 3 should start at position 11
3       2
3       3

使用排名()

SELECT
            rownum = rank() OVER (ORDER BY Number),
            Number
        FROM #SEQNUMBERSTEMP

您可能想使用不带 PARTITION BY 子句的 DENSE_RANK(),例如:

SELECT rownum = DENSE_RANK() OVER (ORDER BY Number), Number
FROM #SEQNUMBERSTEMP