当前位置: 移动技术网 > IT编程>开发语言>.net > SQL四大排名函数

SQL四大排名函数

2020年07月14日  | 移动技术网IT编程  | 我要评论

表结构
表结构


ROW_NUMBER(),排序函数

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

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

结果1
这里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;

结果2


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()是连续的排名
结果2 在这里插入图片描述

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网