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、的简介相关推荐

  1. oracle分类函数总结,oracle中分组排序函数用法

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

  2. oracle 条件排序函数,oracle中分组排序函数

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

  3. SQL中常用的窗口函数(排序函数)-row_number/rank/dense_rank/ntile

    总结四个函数的特点: row_number():连续不重复:1234567 rank() :重复不连续:1222567 dense_rank():重复且连续:1222345 ntile():平均分组: ...

  4. oracle求和分组排序,oracle中分组排序函数用法 - 转

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

  5. oracle中按数字大小排序函数,oracle中分组排序函数用法

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如: 1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的 ...

  6. SQL排序之 row_number, rank(), dense_rank()区别

    三者的区别如下: rank()排序相同时会重复,总数不变,即会出现1.1.3这样的排序结果: dense_rank()排序相同时会重复,总数会减少,即会出现1.1.2这样的排序结果: row_numb ...

  7. SQL新函数, 排名函数 - ROW_NUMBER(), RANK(), DENSE_RANK()

    ROW_NUMBER() 根据over后的order by字据的字段排序,返回一个不断递增的整数. use  Northwind go select  CompanyName, ContactName ...

  8. SQL中的排序函数【row_number() 、rank() 、dense_rank() 】

    一.SQL中有三种排序函数 1.row_number() over(order by 列名) 2.rank() over(order by 列名) 3.dense_rank() over(order ...

  9. Oracle中的排序和排序函数的使用

    参考地址:https://www.cnblogs.com/qiuting/p/7880500.html 前排提示,下面的实例用到的hr.employees表是Oracle11g的orcl实例自带的表空 ...

最新文章

  1. 福利直播 | 12年阿里巴巴大数据之路亲历者详解数据中台
  2. Sql server中时间函数用法详解
  3. 构筑你的本地资料库——ScrapBook
  4. [.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(三) 利用多线程提高程序性能(下)...
  5. TYVJ P1053 字符串的展开 Label:字符 水
  6. HDU 1518 Square
  7. 亿级流量场景下的平滑扩容:TDSQL的水平扩容方案实践
  8. JSON指针:JSON-P 1.1概述系列
  9. 作者:王长波,华东师范大学教授、博士生导师、软件学院常务副院长。
  10. 在sqlyog进行数据库的备份_狂神说MySQL07:权限及如何设计数据库
  11. Spring WS Consume Soap Service From WSDL
  12. Window Operations
  13. 锐捷自动定时启动,开机自动认证校园网 教程
  14. 瑞幸在前 Manner在后 资本吹不熟的咖啡赛道迎来新变局
  15. CSDN首页 云计算 孙玄:解析58同城典型技术架构及演变
  16. 信度和效度经典例子_效度与信度的通俗解释
  17. 向传奇致敬,向约翰·纳什和他的妻子艾丽西亚致敬,缔造了数学和爱的传奇
  18. 西瓜书课后题——第四章(决策树)
  19. MATLAB加柯西分布噪声图像和加柯西分布噪声图像直方图
  20. 10分钟教你用Python获取百度地图各点的经纬度信息

热门文章

  1. 求助编译lede的openwrt固件是云编译出错
  2. 如何无缝监听安卓手机通知栏推送信息以及拒接来电
  3. 计算机网络传输分层模型
  4. aspose.words更新目录
  5. 2019 最流行的歌词
  6. 小程序,会是下一个创业风口吗
  7. RNA/DNA合成修饰/细胞膜修饰-ADMET性质预测服务
  8. 小米扫地机器人参数以及芯片参数
  9. 自定义收缩TextView
  10. PHP使用三元运算判断变量