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;
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;
相关文章推荐
- oracle分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总
- sum over 分析函数用法
- sum()over()和count()over()分析函数
- oracle分析函数sum/ration_to_report(column) over (partition by column order by column)
- 连续求和分析函数max(...)/min(...)/avg(...)/sum(...) over ... ——分析函数1
- oracle分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总
- Oracle-分析函数之sum(...) over(...)
- Oracle-分析函数之sum(...) over(...)
- ORACLE SUM over分析函数
- oracle累积求和分析函数sum over的使用
- oracle分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总
- sum()over()和count()over()分析函数
- 分析函数入门sum...over(partition by xxx order by yyy rows between zzz)
- Oracle-分析函数之sum(...) over(...)
- oracle分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总
- Oracle select --分析函数over()
- ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法
- 浅谈oracle中row_number() over()分析函数用法
- oracle中over()分析函数的用法
- [Oracle]高效的SQL语句之分析函数(一)--sum()