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;
正如我们所知,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;