dense,rownumber,rank三个区别和效果

Posted waitsani

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dense,rownumber,rank三个区别和效果相关的知识,希望对你有一定的参考价值。

select *,
rank() over (order by 成绩 desc) as ranking,
dense_rank() over (order by 成绩 desc) as dese_rank,
row_number() over (order by 成绩 desc) as row_num
from 班级;

技术图片

 

从上面的结果可以看出:
1)rank函数:这个例子中是5位,5位,5位,8位,也就是如果有并列名次的行,会占用下一名次的位置。比如正常排名是1,2,3,4,但是现在前3名是并列的名次,结果是:1,1,1,4。

2)dense_rank函数:这个例子中是5位,5位,5位,6位,也就是如果有并列名次的行,不占用下一名次的位置。比如正常排名是1,2,3,4,但是现在前3名是并列的名次,结果是:1,1,1,2。

3)row_number函数:这个例子中是5位,6位,7位,8位,也就是不考虑并列名次的情况。比如前3名是并列的名次,排名是正常的1,2,3,4。

 

 

 

 

作者:houziAI
链接:https://leetcode-cn.com/problems/department-top-three-salaries/solution/tu-jie-sqlmian-shi-ti-jing-dian-topnwen-ti-by-houz/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

以上是关于dense,rownumber,rank三个区别和效果的主要内容,如果未能解决你的问题,请参考以下文章

mysql窗口函数rank() over、dense_rank() over、row_number() over 使用心得

【SQL】根据一个字段分组求另一个字段的最大值,并带出其他字段

hive的row_number()rank()和dense_rank()的区别以及具体使用

sql语句 rank() 和 row numebe()的区别

sql排序对比(row_number,rank,dense_rank)

大数据学习(二十三)sql中的排序函数 row_number() rank() dense_rank()