博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RANK() OVER(PARTITION BY deptno ORDER BY empno)
阅读量:4177 次
发布时间:2019-05-26

本文共 1574 字,大约阅读时间需要 5 分钟。

 

row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序)
rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)
dense_rank()l是连续排序,有两个第二名时仍然跟着第三名。
相比之下row_number是没有重复值的
 
 
 
基于[deptno]进行具有重复序列的连续排序:
SELECT deptno,empno,ROW_NUMBER() OVER(ORDER BY deptno) FROM emp;
基于[deptno]进行跳跃排序:
SELECT deptno,empno,RANK() OVER(ORDER BY deptno) FROM emp;
基于[deptno]进行具有重复序列的连续排序:
SELECT deptno,empno,DENSE_RANK() OVER(ORDER BY deptno) FROM emp;
 
先以[deptno]分组后,再基于[deptno]进行跳跃排序:
SELECT deptno,empno,RANK() OVER(PARTITION BY deptno ORDER BY deptno) FROM emp;
先以[deptno]分组后,再基于[deptno]进行具有重复序列的连续排序:
SELECT deptno,empno,ROW_NUMBER() OVER(PARTITION BY deptno ORDER BY deptno) FROM emp;
 
先以[deptno]分组后,再基于[empno]进行跳跃排序:
SELECT deptno,empno,RANK() OVER(PARTITION BY deptno ORDER BY empno) FROM emp;
 
 
SQL> SELECT * FROM emp;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK         7902 1980/12/17     800.00                    20
 7499 ALLEN      SALESMAN   7698 1981/02/20    1600.00    300.00     30
 7521 WARD       SALESMAN   7698 1981/02/22    1250.00    500.00     30
 7566 JONES      MANAGER    7839 1981/04/02    2975.00                   20
 7654 MARTIN    SALESMAN   7698 1981/09/28    1250.00   1400.00    30
 7698 BLAKE      MANAGER    7839 1981/05/01    2850.00                   30
 7782 CLARK     MANAGER     7839 1981/06/09    2450.00                  10
 7788 SCOTT     ANALYST     7566 1982/12/09    3000.00                  20
 7839 KING        PRESIDENT           1981/11/17    5000.00                  10
 7844 TURNER   SALESMAN    7698 1981/09/08    1500.00      0.00      30
 7876 ADAMS    CLERK          7788 1983/01/12    1100.00                  20
 7900 JAMES     CLERK          7698 1981/12/03     950.00                  30
 7902 FORD       ANALYST      7566 1981/12/03    3000.00                  20
 7934 MILLER     CLERK         7782 1982/01/23    1300.00                  10
 
14 rows selected
 
SQL>

转载地址:http://mktai.baihongyu.com/

你可能感兴趣的文章
从JBoss Seam 2.x迁移到JavaEE 7之三:对象的注入
查看>>
从JBoss Seam 2.x迁移到JavaEE 7之四:事件机制
查看>>
Java 1.5并发包之一:Lock
查看>>
Java 1.5并发包之二:任务与线程池
查看>>
Java 1.5并发包之三:线程池实现之Fork/Join框架
查看>>
Java多线程同步方法的概述
查看>>
Java IO概述
查看>>
Java NIO概述
查看>>
Java中synchronized与volatile的区别与联系
查看>>
volatile与synchronized在Java单例模式中的应用
查看>>
Hibernate 5.1概述
查看>>
Hibernate数据类型及JPA的Entity类与Hibernate的Entity类的区别
查看>>
Hibernate中的Entity类未必final
查看>>
Hibernate中的Entity类中的无参数构造函数
查看>>
Hibernate中的Entity类中的getter/setter方法
查看>>
Hibernate中的Entity类的乐观锁配置
查看>>
Hibernate中的Entity类的JPA字段/属性访问策略
查看>>
Hibernate中的Entity类之间的ManyToOne关联
查看>>
Hibernate中的Entity类之间的OneToMany关联
查看>>
Hibernate中的Entity类之间的OneToOne关联
查看>>