SQL四大排名函数
程序员文章站
2022-10-04 15:14:34
SQL四大排名函数ROW_NUMBER(),排序函数RANK(),排名函数DENSE_RANK(),排名函数NTILE(),分组函数表结构ROW_NUMBER(),排序函数说明: 将查询到的数据进行排序,给每一条数据加一个序号,一般多用于分页查询例子: 根据成绩倒序,给每条数据一个序号(ID)结果:select row_number() over(order by score1 desc) as id,t.* from aaa t;这里ID就是每个学生的序号 根据score(分数)...
表结构
ROW_NUMBER(),排序函数
说明: 将查询到的数据进行排序,给每一条数据加一个序号,一般多用于分页查询
例子: 根据成绩倒序,给每条数据一个序号(ID)
结果:
select row_number() over(order by score1 desc) as id,t.* from aaa t;
这里ID就是每个学生的序号 根据score(分数)进行desc倒序
RANK(),排名函数
- 说明: RANK()函数,排名函数,可以对某一个字段进行排名,这里为什么和ROW_NUMBER()不一样那,ROW_NUMBER()是排序,当存在相同成绩的学生时,ROW_NUMBER()会依次进行排序,他们序号不相同,而Rank()则不一样出现相同的,他们的排名是一样的。
- 例子: 根据成绩排名,给每条数据一个排名(ID)
- 结果:
select rank() over(order by score1 desc) as id, t.* from aaa t;
DENSE_RANK(),排名函数
说明: DENSE_RANK()函数也是排名函数,和RANK()功能相似,也是对字段进行排名,那它和RANK()到底有什么不同?
例子: 根据成绩排名,给每条数据一个排名(ID)
结果:
select dense_rank() over(order by score1 desc) as id, t.* from aaa t;
RANK() | DENSE_RANK() |
---|---|
RANK()是跳跃的排名 | DENSE_RANK()是连续的排名 |
NTILE(),分组函数
说明: NTILE()函数将over()排序后的数据尽量平均的分发到指定数目的组中,各个组有编号,编号从1开始
例子: 根据成绩排名,分为20组
结果:
select NTILE(20) over(order by score1 desc) as id, t.* from aaa t;
本文地址:https://blog.csdn.net/qq_42700109/article/details/107303428
上一篇: 父母的审美总是那么的
下一篇: 阿里和腾讯的社交电商争夺战