oracle 中使用row_numer(),rank()及dense_rank()排序的区别
来源:互联网 发布:淘宝客服需要什么软件 编辑:程序博客网 时间:2024/06/15 20:39
好久没有写了,那是因为我没碰到觉得可以分享的东西呢。
今天呢我们来看看oracle中使用row_numer(),rank()以及dense_rank()排序的区别。在最近的开发中遇到一个需要排名的列表。然后对我们上述的几个排序函数进行了了解。
首先我们来准备一下数据。先建立个测试表。如下:
REATE TABLE "TEST_EMP" ( "EMPNO" NUMBER(4,0), "ENAME" VARCHAR2(10), "JOB" VARCHAR2(9), "MGR" NUMBER(4,0), "HIREDATE" DATE, "SAL" NUMBER(7,2), "COMM" NUMBER(7,2), "DEPTNO" NUMBER(2,0));COMMENT ON COLUMN "TEST_EMP"."EMPNO" IS'员工ID';COMMENT ON COLUMN "TEST_EMP"."ENAME" IS'员工姓名';COMMENT ON COLUMN "TEST_EMP"."JOB" IS'职位';COMMENT ON COLUMN "TEST_EMP"."MGR" IS'员工管理者ID';COMMENT ON COLUMN "TEST_EMP"."HIREDATE" IS'入职日期';COMMENT ON COLUMN "TEST_EMP"."SAL" IS'薪资';COMMENT ON COLUMN "TEST_EMP"."COMM" IS'绩效';COMMENT ON COLUMN "TEST_EMP"."DEPTNO" IS'部门ID';
插入一些数据。自己随便加一些就好。如下:
第一个,row_numer(),这个排序函数的特点是相同数据,先查出的排名在前,没有重复值。像我们这里呢sal相同,先查出来的数据的rank排名优先。如下图:
第二个,rank()函数,是跳跃排序,相同数据(这里为sal列相同)排名相同,比如并列第1,则两行数据(这里为rank列)都标为1,下一位将是第3名.中间的2被直接跳过了。排名存在重复值。
第三个,dense_rank(),这个是连续排序的,比如两条并列第1,则两行数据(这里为rank列)都标为1,下一个排名将是第2名。
这就是它们三之间的排序的一点区别。当然,分析函数over()也是值得我们好好去了解的。
阅读全文
0 0
- oracle 中使用row_numer(),rank()及dense_rank()排序的区别
- Oracle中rownum、rowid、row_number()、rank()、dense_rank()的区别
- oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rownum、rowid、row_number()、rank()、dense_rank()的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- oracle中聚合函数RANK和dense_rank的使用
- oracle中聚合函数RANK和dense_rank的使用
- 有关oracle中聚合函数rank和dense_rank的使用
- oracle中聚合函数rank、dense_rank和row_rumber的使用
- Scala处理文件
- 仿QQ空间标题栏显示隐藏
- 汇编与机器码
- 双核处理(网易2017春招笔试题)
- loadrunner问题3:无法成功登陆,原因:动态session,解决:手工关联-LoadRunner自带程序登录功能关联演示
- oracle 中使用row_numer(),rank()及dense_rank()排序的区别
- 14.JavaScript深入之创建对象的多种方式以及优缺点
- 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
- 在msys2中让git忽略本机的权限
- Using Sockets and Socket Streams
- C语言之加入头文件<stdbool.h>可以使用true和false
- Java:System.getProperty()方法大全
- PCL_用鼠标点击点云中任意点显示该点的FPFH直方图
- 类和对象例子