oracle函数(三)之over

1.oracle over()函数是从oracle8i开始支持,后面的版本支持的比较好。

2.通常做统计分析的时候我们希望尽可能多的选择出原始列和统计值列,这样group by后面必须跟随更多的列,使用分析函数可以避免使用group by时选择出来的列名必须出现在group by列表中的痛苦

 

对分析函数的一种条件解释,就是给分析函数加条件。

注:9i下over()括号内必须有内容,不允许为空 

 

select  deptno,ename,sal,

sum(sal) over(partition by deptno order by ename) "部门连续求和",

sum(sal) over (partition by deptno) "部门总和",

100*round(sal/sum(sal) over (partition by deptno),4) "部门份额",

sum(sal) over (order by deptno,ename) "连续求和",

sum(sal) over () "总和",

100*round(sal/sum(sal) over (),4) "总份额(%)"

from emp;

 

 

 

 

 

 

你可能感兴趣的:(Oracle函数)