如何计算/增加MS SQL选择中表列的当前出现次数

spc*_*ial 2 sql sql-server

我有一张桌子,看起来像这样:

id | name| fk_something
----------------
0  | 25  | 3
1  | 25  | 2
2  | 23  | 1
Run Code Online (Sandbox Code Playgroud)

并且我想添加另一列,该列的编号在每次name出现行时都会递增,例如:

id | name| fk_something| n
--------------------------
0  | 25  | 3           | 1
1  | 25  | 2           | 2
2  | 23  | 1           | 1
Run Code Online (Sandbox Code Playgroud)

我不太确定如何实现这一目标。使用count()I只会得到的总发生次数,name但我想增加,n以便每行都有一个不同的值。

Yog*_*rma 5

您要row_number()

select t.*, row_number() over (partition by name order by id) as n
from table t;
Run Code Online (Sandbox Code Playgroud)