sql 四大排名函数---ROW_NUMBER、RANK、DENSE_RANK、NTILE
1.ROW_NUMBER()
定义:ROW_NUMBER()函数作用就是将select查询到的数据进行排序,每一条数据加一个序号,他不能用做于学生成绩的排名,一般多用于分页查询,
比如查询前10个 查询10-100个学生
格式:select ....... ROW_NUMBER() over(order by .......) as number from.......
2.RANK()
定义:RANK()函数,顾名思义排名函数,可以对某一个字段进行排名
格式:select ....... RANK() over(order by .......) as number from.......
3.DENSE_RANK()
定义:DENSE_RANK()函数也是排名函数,和RANK()功能相似
格式:select ......DENSE_RANK(). over(order by .......) as number from.......
4.NTILE()
定义:NTILE()函数是将有序分区中的行分发到指定数目的组中,各个组有编号,编号从1开始,就像我们说的’分区’一样 ,分为几个区,一个区会有多少个
区别:对以上四个函数简单理解如下
示例:
A | 90 |
B | 90 |
C | 85 |
D | 80 |
E | 80 |
1.对于ROWNUBER():就像是同等分数,主课优的排前。排行:12345
2.对于rank():就像是同等分数并列,但排名依然占位子。排行:11344
3.对于dense_rank():就像是同等分数并列,但排名不占位子。排行:11233
4.对于NTILE():定分区数目,自动按分数来划定分区位子。如:N(1),11111;N(3),11233
参考来源:https://blog.csdn.net/shaiguchun9503/article/details/82349050
待续: