ITPub博客

首页 > 数据库 > Oracle > row_number() over,rank() over,dense_rank() over的区别

row_number() over,rank() over,dense_rank() over的区别

原创 Oracle 作者:THANK_DBA 时间:2013-12-04 21:05:53 0 删除 编辑

已知已经创建表emp

select * 
from(select deptno,ename,sal,
row_number() over(partition by deptno order by sal desc) rn,
rank() over(partition by deptno order by sal desc) rk, 
  dense_rank() over(partition by deptno order by sal desc) drk 
from emp)  where drk<=3;  
oracle比较函数 decode/case when~~~4种去重方法~~~去重中的统计函数

由此结论:
rank()跳跃排序,比如有两个第1名时接下来就是第3名(同样是在各个分组内)
dense_rank()连续排序,比如有两个第1名时仍然跟着第2名。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29366942/viewspace-1062238/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Optimizer_mode参数
请登录后发表评论 登录
全部评论

注册时间:2013-12-04

  • 博文量
    16
  • 访问量
    62964