Oracle rank()分析函数:

分为:(1)连续或不连续:dense_rank,rank

          (2)分区或不分区:使用partition,不使用partition

举例:student表数据(sno编号,sname姓名,course科目,score成绩)

select * from student;

1.  对比rank和dense_rank

(1)使用rank:查询科目为Oracle的学生名次

select sno,sname,course,score,rank() over(order by score desc) as 名次 from student where course='Oracle';

(2)使用dense_rank:查询科目为Oracle的学生名次

select sno,sname,course,score,dense_rank() over(order by score desc) as 名次 from student where 

course='Oracle';

以上可以说明:rank为不连续,dense_rank为连续

2.  对比使用partition-分区和不分区:

查询各学生各科目成绩排名【三种语句结果做对比】

(1)select sno,sname,course,score,rank() over(order by score desc) as 名次 from student;

(2)select sno,sname,course,score,rank() over(partition by course order by score desc) as 名次 from student;

(3)select sno,sname,course,score,dense_rank() over(partition by course order by score desc) as  名次  from           student;

(1)  (2)                               (3)

知识点:

1.  语法:rank() over(order by 排序字段 顺序)

         dense_rank() over(partition by 分区字段 order by 排序字段 顺序)

2.  partition by 关键字是分析性函数的一部分,与聚合函数不同的地方在于分析函数能返回以这个分组中的多条记录;

   而聚合函数一般只有一条记录反映统计值。

   partition by 用于给结果集分组,如果没有指定就会把整个结果集作为一个来分组,分区函数与排名函数一起使用。

3.  分区与分组有什么区别?

分区:将原始数据进行顺序排列(记录数不变)

分组:对原始数据进行聚合统计(记录数变少,每组返回一个结果)

oracle 的 rank()函数相关推荐

  1. oracle 四分位函数,Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…

    Oracle 分析函数--函数RANK,DENSE_RANK,FIRST,LAST- RANK 功能描述:根据 ORDER BY 子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置.组内 ...

  2. Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…

    Oracle分析函数--函数RANK,DENSE_RANK,FIRST,LAST- RANK 功能描述:根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置.组内的数据 ...

  3. oracle sql时间排序函数,sql的rank函数

    SQL SERVER 2008排序函数(窗口函数) 排序函数可以用来协助给结果集增加位置信息.SQL SERVER 2008只有四个排序函数,介绍如下: ROW_NUMBER:返回结果集中给定行的序号 ...

  4. oracle工资在3000到5000,Oracle查询部门工资最高员工的两种方法 1、MAX()函数 2、RANK()函数...

    本文以SCOTT用户下初始的EMP表为参考.代码可直接使用. 查询EMP表结构的语句如下,[代码1]: DESC EMP; EMP表结构如下:[结果1]: SQL> DESC EMP; 名称 是 ...

  5. Oracle查询部门工资最高员工的两种方法 1、MAX()函数 2、RANK()函数

      本文以SCOTT用户下初始的EMP表为参考.代码可直接使用.   查询EMP表结构的语句如下,[代码1]: DESC EMP;   EMP表结构如下:[结果1]: SQL> DESC EMP ...

  6. Oracle中rank() over, dense_rank(), row_number() 的区别

    Oracle中rank() over, dense_rank(), row_number() 的区别 假设现在有一张学生表student,学生表中有姓名.分数.课程编号,现在我需要按照课程对学生的成绩 ...

  7. oracle的rank,over partition 使用 和lead

    http://blog.csdn.net/rokii/article/details/6429145 排列(rank ())函数.这些排列函数提供了定义一个集合(使用 PARTITION 子句),然后 ...

  8. java中rank函数_sql rank()函数

    RANK() OVER([]) partition_by_clause 将from子句生成的结果集划分为应用到RANK函数的分区. Order_by_clause确定将RANK值应用到分区中的行时所使 ...

  9. oracle的连接函数,Oracle各种连接函数总结

    1.前言 Oracle可用连接函数会介绍以下几个 Oracle列转行函数 Listagg() strcat() wmsys.wm_concat() 2.Oracle列转行函数 Listagg() 2. ...

最新文章

  1. 色彩(颜色)空间原理(下)
  2. SQLSERVER拆分字符串的函数(表值函数)
  3. Microsoft主要服务器产品使用的网络端口
  4. ES6新增数据类型符号(2):共享符号与知名符号
  5. mysql 天数减1_mysql 日期加减天数
  6. 白鹭引擎定时器代码实例
  7. 虚拟机访问本地mysql_虚拟机访问主机Mysql
  8. 2017 西安网络赛A Tree(树上静态查询,带权并查集,矩阵乘法压位,好题)
  9. gimp 抠图_GIMP入门教程2——利用蒙版抠图.pdf
  10. 智能家居APP使用指南
  11. 网络设备选型之路由器
  12. C++ 文件操作(CFile类)
  13. 【狂神说Java】---JavaWeb
  14. “阿里外传”之二:中国雅虎,一个家庭的宠物传奇
  15. 一零零九、Docker搭建 全集群 环境配置
  16. 开源移动护理_开源让您的健康护理倍感美好
  17. 木工加工中心操作教程
  18. 用H5开发微信还是开发APP?
  19. 数据改版 | CnOpenData中国高新技术企业专利统计数据
  20. 临床药师对眼科使用脑苷肌肽治疗白内障的干预结局

热门文章

  1. archlinux 解决蓝牙无法连接问题
  2. c语言----移动n根火柴使等式成立
  3. G1与CMS垃圾回收
  4. webRTC(二十三):web远程androidandroid远程android的实现
  5. 检查oracle当前性能,高效进行Oracle日常巡检:数据库性能与安全检查
  6. python 自定义文件类型
  7. 新版NFT数字藏品源码系统源码+已接支付
  8. 线性回归模型(最小二乘法模型)诊断--R语言
  9. 2048【浙江工商大学oj】
  10. 使用python自动生成病例数据并导出excel(附代码)