日期:2014-05-17  浏览次数:20797 次

分析函数
谁给我解释下lead和PARTITION BY的作用?
------解决方案--------------------
lead分析函数是偏移量函数,用途是查询出同一字段不同行的值;partition by是划分范围,很group by功能相似。
例如:scott用户下的emp表;
按部门查询出员工信息,员工工资按从高到低排列,并将同一部门员工的下一位员工的工资放入paiming这一字段中。
select ename,job,sal,
   lead(sal,1,null) over(partition by job order by sal desc) paiming
   from emp;
得到结果:
ENAME      JOB             SAL    PAIMING
---------- --------- --------- ----------
FORD       ANALYST     3000.00       3000
SCOTT      ANALYST     3000.00 
MILLER     CLERK       1300.00       1100
ADAMS      CLERK       1100.00        950
JAMES      CLERK        950.00        800
SMITH      CLERK        800.00 
JONES      MANAGER     2975.00       2850
BLAKE      MANAGER     2850.00       2450
CLARK      MANAGER     2450.00 
KING       PRESIDENT   5000.00 
ALLEN      SALESMAN    1600.00       1500
TURNER     SALESMAN    1500.00       1250
MARTIN     SALESMAN    1250.00       1250
WARD       SALESMAN    1250.00