SQL語句

Oracle的EMP表,查詢每一個部門工資前三名的員工信息,如何寫?? 
解答:(通用sql)java

select deptno, ename, sal      
  1. from emp e1     
  2. where      
  3.    (  
  4.     select count(1)     
  5.     from emp e2     
  6.     where e2.deptno=e1.deptno and e2.sal>=e1.sal  
  7.    ) <=/*這裏的數值表示你想取前幾名*/  
  8. order by deptno, sal desc;    

Oracle查詢:(利用分區功能) 
select * from         
  1. (select deptno,ename,sal,row_number() over (partition by deptno        
  2.     order by sal desc) rn         
  3. from emp)         
  4.    where rn<3;  
相關文章
相關標籤/搜索