您的位置:首页 > 其它

SUM() over()分析函数

2010-04-02 16:36 106 查看
SUM() over()分析函数:求和分析函数

SELECT a.deptno,a.ename,a.sal,

SUM(a.sal) over (PARTITION BY a.deptno ORDER BY ename) AS a2

 FROM emp a;

 

说明:

1执行:"ORDER BY a.deptno,a.ename" 按照deptno,ename进行升序排序。

2执行:"sum(a.sal)" 对sal进行求和,

       这个和有一个特点,(n-1) + (n -2) = n。

       即第n行的和总是等于n-1加上n-2的和(如:第3行的和总是1和2行的和。)。

      

备注:

其实在工作中常遇到的需求是:求总工资最高的3个部门

SELECT SUM(a.sal),a.deptno FROM emp a GROUP BY a.deptno ORDER BY SUM(a.sal);--用这个语句也能实现效果

SELECT * FROM

(

SELECT ROWNUM rn,tmp.* FROM

(

SELECT SUM(a.sal),a.deptno FROM emp a GROUP BY a.deptno ORDER BY SUM(a.sal) DESC

)tmp)tmp1

WHERE tmp1.rn < 4;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  工作