0

假设我有一个如下所示的表:

table = (Key int, ID int)

我需要能够对 ID 列的每个重复实例进行递增编号。例如,如果我们有一个如下所示的数据样本:

ID
--
99
100
101
102
103
100
101
102
103

我需要一个可以返回以下结果的查询:

99    1
100   1
101   1 
102   1
103   1
100   2
101   2
102   2
103   2

我似乎无法让这个工作。任何人都可以帮忙吗?

4

2 回答 2

1

您可以使用以下ROW_NUMBER功能:

SELECT
ID,
ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID) RowNum
FROM Table
ORDER BY RowNum, ID

示例结果在这里

于 2013-07-15T19:49:59.553 回答
0

看起来像一个简单的 ROW_NUMBER(),除非我遗漏了一些东西:

SELECT ID, ROW_NUMBER() OVER (PARTITION BY ID, ORDER BY Key)
FROM Table
于 2013-07-15T19:50:07.810 回答