欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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(分数)...

表结构
SQL四大排名函数


ROW_NUMBER(),排序函数

说明: 将查询到的数据进行排序,给每一条数据加一个序号,一般多用于分页查询
例子: 根据成绩倒序,给每条数据一个序号(ID)
结果:

select row_number() over(order by score1 desc) as id,t.* from aaa t;

SQL四大排名函数
这里ID就是每个学生的序号 根据score(分数)进行desc倒序


RANK(),排名函数

  1. 说明: RANK()函数,排名函数,可以对某一个字段进行排名,这里为什么和ROW_NUMBER()不一样那,ROW_NUMBER()是排序,当存在相同成绩的学生时,ROW_NUMBER()会依次进行排序,他们序号不相同,而Rank()则不一样出现相同的,他们的排名是一样的。
  2. 例子: 根据成绩排名,给每条数据一个排名(ID)
  3. 结果:
select rank() over(order by score1 desc) as id, t.* from aaa t;

SQL四大排名函数


DENSE_RANK(),排名函数

说明: DENSE_RANK()函数也是排名函数,和RANK()功能相似,也是对字段进行排名,那它和RANK()到底有什么不同?
例子: 根据成绩排名,给每条数据一个排名(ID)
结果:

select dense_rank() over(order by score1 desc) as id, t.* from aaa t;

SQL四大排名函数

RANK() DENSE_RANK()
RANK()是跳跃的排名 DENSE_RANK()是连续的排名
SQL四大排名函数 SQL四大排名函数

NTILE(),分组函数

说明: NTILE()函数将over()排序后的数据尽量平均的分发到指定数目的组中,各个组有编号,编号从1开始
例子: 根据成绩排名,分为20组

结果:

select NTILE(20) over(order by score1 desc) as id, t.* from aaa t;

SQL四大排名函数

本文地址:https://blog.csdn.net/qq_42700109/article/details/107303428