SQL:在选择中添加计数器

eta*_*rvt 5 sql counter

我有一个包含名称的表:

Name
----
John Smith
John Smith
Sam Wood
George Wright
John Smith
Sam Wood
Run Code Online (Sandbox Code Playgroud)

我想创建一个 select 语句来显示以下内容:

姓名

《约翰·史密斯 1》

《约翰·史密斯 2》

《萨姆·伍德 1》

《乔治·赖特 1》

《约翰·史密斯 3》

《萨姆·伍德2》

换句话说,我想为每个名称添加单独的计数器。有没有办法不使用游标来做到这一点?

cjk*_*cjk 5

使用 ROW_NUMBER():

SELECT Name, ROW_NUMBER() OVER(Partition BY Name ORDER BY Name) as [Rank]
FROM MyTable
Run Code Online (Sandbox Code Playgroud)