在表中重复数据的实例

时间:2013-07-15 19:44:43

标签: sql sql-server tsql sql-server-2008-r2

假设我有一张看起来像这样的表:

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

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

2 个答案:

答案 0 :(得分:1)

您可以使用ROW_NUMBER功能:

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

示例结果here

答案 1 :(得分:0)

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

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