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

分析函数
谁给我解释下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