SQL 超过分区依据的行数

SQL Row Count Over Partition By

正如我们所知,over partition by 增加直到分组改变。更改组后,它会重新开始。如何做到相反?也就是说,如果组没有改变,数字应该重复如下。

NAME | ROW_COUNT
 A        1
 A        1
 A        1
 B        2
 C        3
 C        3
 D        4
 E        5

您的方案是使用 dense_rank() ,因为 rank() 不维护序列,只是对列进行排名,row_number() 维护序列,但同样在它分配的类似排名的情况下它是一个唯一的数字

select name
    , dense_rank() over (partition by name order by name)
from table;