日期:2014-05-16 浏览次数:20627 次
 select e.ename, e.job, e.sal, e.deptno  
  from scott.emp e,  
       (select e.deptno, max(e.sal) sal from scott.emp e group by e.deptno) me  
 where e.deptno = me.deptno  
   and e.sal = me.sal;  select e.ename, e.job, e.sal, e.deptno  
  from (select e.ename,  
               e.job,  
               e.sal,  
               e.deptno,  
               rank() over(partition by e.deptno order by e.sal desc) rank  
          from scott.emp e) e  
 where e.rank = 1;   select e.ename, e.job, e.sal, e.deptno  
  from (select e.ename,  
               e.job,  
               e.sal,  
               e.deptno,  
               dense_rank() over(partition by e.deptno order by e.sal desc) rank  
          from scott.emp e) e  
 where e.rank = 1;   select e.ename,  
         e.job,  
         e.sal,  
         e.deptno,  
         e.sal - me.min_sal diff_min_sal,  
         me.max_sal - e.sal diff_max_sal  
    from scott.emp e,  
         (select e.deptno, min(e.sal) min_sal, max(e.sal) max_sal  
            from scott.emp e  
           group by e.deptno) me  
   where e.deptno = me.deptno  
   order by e.deptno, e.sal;    select e.ename,  
       e.job,  
       e.sal,  
       e.deptno,  
       nvl(e.sal - min(e.sal) over(partition by e.deptno), 0) diff_min_sal,  
       nvl(max(e.sal) over(partition by e.deptno) - e.sal, 0) diff_max_sal  
  from scott.emp e;    select e.ename,  
       e.job,  
       e.sal,  
       e.deptno,  
       lead(e.sal, 1, 0) over(partition by e.deptno order by e.sal) lead_sal,  
       lag(e.sal, 1, 0) over(partition by e.deptno order by e.sal) lag_sal,  
       nvl(lead(e.sal) over(partition by e.deptno order by e.sal) - e.sal,  
           0) diff_lead_sal,  
       nvl(e.sal - lag(e.sal) over(partition by e.deptno order by e.sal), 0) diff_lag_sal  
  from scott.emp e;