对重复的注册表进行排序并对其进行计数(为每个注册表提供一个编号)



也许你可以帮我一把

我有这张桌子

Name
----
Pablo
Cris
Pablo
Pablo
Cris

我需要一个查询,结果是

Name
----
Cris     1
Cris     2
Pablo    1
Pablo    2
Pablo    3

我知道对结果进行排序以及查找具有计数的重复项,但是有没有办法像这样枚举它们?

感谢您的帮助,

您可以使用窗口函数来执行此操作。 ROW_NUMBER 函数将按照窗口中 Order By 子句指定的顺序在每一行上放置一个递增计数器。 分区依据子句将在每个不同的分区中重新启动计数器。

SELECT NAME, ROW_NUMBER() OVER (PARTITION BY NAME ORDER BY NAME)
FROM table

最新更新