看下这个例子,秒懂排序函数之间的区别
例子为五个同学的成绩,按从小到大排序,三个函数的结果如下:

简单来说:
rank() over () 并列有间隔,rank值为:1 2 2 4 5
dense_rank() over() 并列不间断,rank值为:1 2 2 3 4
row_number() over() 相同连续排名,rank值为:1 2 3 4 5
代码如下:
select
name,score,
rank() over( order by score) rn1,
dense_rank() over( order by score) rn2,
row_number() over( order by score) rn3
from test;
name score rn1 rn2 rn3
A同学 60 1 1 1
B同学 70 2 2 2
C同学 70 2 2 3
D同学 80 4 3 4
E同学 90 5 4 5