row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序)
rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)
dense_rank()l是连续排序,有两个第二名时仍然跟着第三名。
相比之下row_number是没有重复值的
http://www.itpub.net/thread-244881-1-1.html
基于[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>

RANK() OVER(PARTITION BY deptno ORDER BY empno)相关推荐

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

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

  2. over oracle 不足补零,oracle的rank,over partition涵数使用

    排列(rank())函数.这些排列函数提供了定义一个集合(使用 PARTITION 子句),然后根据某种排序方式对这个集合内的元素进行排列的能力,下面以scott用户的emp表为例来说明rank ov ...

  3. 分析函数入门sum...over(partition by xxx order by yyy rows between zzz)

    分析函数是什么? 分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值. 分析函数和聚合函数的不 ...

  4. ORACLE中ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)用法

    row_number()  OVER  (  PARTITION  BY  COL1  ORDER  BY  COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组 ...

  5. Oracle分析函数-rank() over(partition by...order by...)

    select *from ( SELECT t.s#,---学号 t.c#,---课程号 T.SCCORE, ---成绩 RANK() OVER(PARTITION BY t.c# ORDER BY ...

  6. MySQL中实现Oracle里面 rank()over ( PARTITION BY ORDER BY) 分类分组功能

    各班级学生成绩测试表 select * from TMP_A; 实现目的: 按照班级分类后按照分数倒序排序 采用MySQL变量简单实现,SQL如下: SELECT  a.stu_id,a.point, ...

  7. Oracle高级函数:rank over partition by

    高级函数,分组排序 over: 在什么条件之上. partition by e.deptno: 按部门编号划分(分区). order by e.sal desc: 按工资从高到低排序(使用rank() ...

  8. mysql col与row_使用mysql实现row_number() over(partition by col1 order by col2)函数

    [color=red]row_number() OVER (PARTITION BY COL1 ORDER BY COL2)[/color] 表示根据COL1分组,在分组内部根据 COL2排序,而此函 ...

  9. Row_number () over (partition by col1 order by col2)的用法

    ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) --(其中,COL1,COL2可以为多列) select xt.id,        xt.it ...

最新文章

  1. 国民认证科技有限公司助力构建我国可信网络空间
  2. html/css——注意事项
  3. Android-实现切换Fragment页功能
  4. 机器视觉:mvs相机调试
  5. C++学习笔记之——引用 内联函数
  6. 雷军反省今天的小米:无法躺赢或猛冲猛打,只能豁出去干
  7. 【Linux网络编程学习】预备知识(网络字节序、IP地址转换函数、sockaddr数据结构)
  8. docker登录mysql数据库_从docker容器连接到远程MySQL数据库
  9. Linux CentOS修改网卡IP/网关设置
  10. 大数据电影可视化系统
  11. 可口可乐中国联袂青年志发布《中国青年「在乎力」报告》
  12. 【C++OJ多重继承与虚拟继承】商旅信用卡(多重继承)
  13. 七彩背景(Background)
  14. 有必要说一说即将到来的春招(经历+重要性+如何准备)
  15. java 累加器_09-flink-Accumulator(累加器)
  16. datagrip对Oracle支持不好,datagrip 连接oracle
  17. Linux命令之查看行号
  18. ISO-8601,日期时间格式表示法的国际标准
  19. 【送两本】计算机领域神书《深入理解计算机系统》
  20. Excel删除重复数据java_合并Excel范围中的数据,删除空白和重复项

热门文章

  1. 在长沙怎么挑选装饰公司
  2. Kafka实现细节(下)
  3. 实战Nagios+Ganglia发送警告信息,短信,微信等
  4. 阻止保存要求重新创建表的更改
  5. Nginx配置和内核优化 实现突破十万并发
  6. ReentrantReadWriteLock读写锁
  7. 关于整合spring+mybatis 第三种方式-使用注解
  8. symbol lookup error
  9. 智能指针和内存管理小结
  10. 最新批量***dedecms|dedecms最新0day