Oracle中rank()函数的使用

rank() over (partition by xx order by xx)
--1. partition by用于给结果集分组,如果没有指定,则把整个结果集作为一个分组
--2. rank是在每个分组内部进行排名的

例子: 查询emp表中每个部门中工资前3名的员工信息

[sql]  view plain  copy
  1. SELECT *  
  2. FROM  
  3.   (SELECT e.*, rank() over (partition BY deptno order by sal desc) rk FROM emp e  
  4.   ) t1  
  5. WHERE t1.rk<=3;  

猜你喜欢

转载自blog.csdn.net/u013178480/article/details/80007219