如何使用SQL创建出现的内部编号

ela*_*row 4 sql t-sql sql-server

如何在特定列中创建具有出现次数的新列(inCount)?这是一个例子:

id      name        inCount
1       Orly        1
2       Ernest      1
3       Rachel      1
4       Don         1
5       Don         2
6       Ernest      2
7       Angela      1
8       Ernest      3
9       David       1
10      Rachel      2
11      Sully       1
12      Sully       2
13      Rachel      3
14      David       2
15      David       3
16      Kevin       1
17      Kevin       2
18      Orly        2
19      Angela      2
20      Sully       3
21      Kevin       3
22      Don         3
23      Orly        3
24      Angela      3
Run Code Online (Sandbox Code Playgroud)

来自id 5的Don编号为2,因为Don也出现在id 4中.由于上述事件的发生,来自id 22的Don编号为3.

我使用MS SQL SERVER 2008 R2 Express版.

谢谢.

And*_*mar 6

您可以使用partition by,例如:

select  row_number() over (partition by name order by id) as inCount
,       *
from    YourTable
order by
        id
Run Code Online (Sandbox Code Playgroud)