Oracle中排名排序函数,ROW_NUMBER、RANK、DENSE_RANK、NTILE、的简介
1.ROW_NUMBER()
定义:ROW_NUMBER()函数作用就是将select查询到的数据进行排序,每一条数据加一个序号,他不能用做于学生成绩的排名,一般多用于分页查询,
比如查询前10个 查询10-100个学生。
实例:
1.1对学生成绩排序
这里number就是每个学生的序号 根据studentScore(分数)进行desc倒序
1.2获取第二个同学的成绩信息
这里用到的思想就是 分页查询的思想 在原sql外再套一层select
where t.number>=1 and t.number<=10 是不是就是获取前十个学生的成绩信息纳。
2.RANK()
定义:RANK()函数,顾名思义排名函数,可以对某一个字段进行排名,这里为什么和ROW_NUMBER()不一样那,ROW_NUMBER()是排序,当存在相同成绩的学生时,ROW_NUMBER()会依次进行排序,他们序号不相同,而Rank()则不一样出现相同的,他们的排名是一样的。下面看例子:
2.1对学生成绩进行排名
这里发现 ROW_NUMBER()和RANK()怎么一样?因为学生成绩都不一样所以排名和排序一样,下面改一下就会发现区别。
当出现两个学生成绩相同是里面出现变化。RANK()是 1 2 2,而ROW_NUMBER()则还是1 2 3,这就是RANK()和ROW_NUMBER()的区别了
3.DENSE_RANK()
定义:DENSE_RANK()函数也是排名函数,和RANK()功能相似,也是对字段进行排名,那它和RANK()到底有什么不同那?看例子:
实例:
DENSE_RANK()密集的排名他和RANK()区别在于,排名的连续性,DENSE_RANK()排名是连续的,RANK()是跳跃的排名,所以一般情况下用的排名函数就是RANK()。
4.NTILE()
定义:NTILE()函数是将有序分区中的行分发到指定数目的组中,各个组有编号,编号从1开始,就像我们说的’分区’一样 ,分为几个区,一个区会有多少个。
实例:
这里查询了3次,第一次分为1个’区’ ,所以查询结果number全是1,第二次分为2个区,查询结果为 1 1 2,意思就是 第一个 ‘区’ 为 1 1 两个编号的数据 ,第二个’区’只有2这个数据。
Oracle中排名排序函数,ROW_NUMBER、RANK、DENSE_RANK、NTILE、的简介相关推荐
- oracle分类函数总结,oracle中分组排序函数用法
项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...
- oracle 条件排序函数,oracle中分组排序函数
项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...
- SQL中常用的窗口函数(排序函数)-row_number/rank/dense_rank/ntile
总结四个函数的特点: row_number():连续不重复:1234567 rank() :重复不连续:1222567 dense_rank():重复且连续:1222345 ntile():平均分组: ...
- oracle求和分组排序,oracle中分组排序函数用法 - 转
项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...
- oracle中按数字大小排序函数,oracle中分组排序函数用法
项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如: 1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的 ...
- SQL排序之 row_number, rank(), dense_rank()区别
三者的区别如下: rank()排序相同时会重复,总数不变,即会出现1.1.3这样的排序结果: dense_rank()排序相同时会重复,总数会减少,即会出现1.1.2这样的排序结果: row_numb ...
- SQL新函数, 排名函数 - ROW_NUMBER(), RANK(), DENSE_RANK()
ROW_NUMBER() 根据over后的order by字据的字段排序,返回一个不断递增的整数. use Northwind go select CompanyName, ContactName ...
- SQL中的排序函数【row_number() 、rank() 、dense_rank() 】
一.SQL中有三种排序函数 1.row_number() over(order by 列名) 2.rank() over(order by 列名) 3.dense_rank() over(order ...
- Oracle中的排序和排序函数的使用
参考地址:https://www.cnblogs.com/qiuting/p/7880500.html 前排提示,下面的实例用到的hr.employees表是Oracle11g的orcl实例自带的表空 ...
最新文章
- 福利直播 | 12年阿里巴巴大数据之路亲历者详解数据中台
- Sql server中时间函数用法详解
- 构筑你的本地资料库——ScrapBook
- [.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(三) 利用多线程提高程序性能(下)...
- TYVJ P1053 字符串的展开 Label:字符 水
- HDU 1518 Square
- 亿级流量场景下的平滑扩容:TDSQL的水平扩容方案实践
- JSON指针:JSON-P 1.1概述系列
- 作者:王长波,华东师范大学教授、博士生导师、软件学院常务副院长。
- 在sqlyog进行数据库的备份_狂神说MySQL07:权限及如何设计数据库
- Spring WS Consume Soap Service From WSDL
- Window Operations
- 锐捷自动定时启动,开机自动认证校园网 教程
- 瑞幸在前 Manner在后 资本吹不熟的咖啡赛道迎来新变局
- CSDN首页 云计算 孙玄:解析58同城典型技术架构及演变
- 信度和效度经典例子_效度与信度的通俗解释
- 向传奇致敬,向约翰·纳什和他的妻子艾丽西亚致敬,缔造了数学和爱的传奇
- 西瓜书课后题——第四章(决策树)
- MATLAB加柯西分布噪声图像和加柯西分布噪声图像直方图
- 10分钟教你用Python获取百度地图各点的经纬度信息