ORACLE计算累计差
2009-12-08 16:53
183 查看
依然通过SUM OVER,只不过和累计和相比,这次加了一层select,通过row_number() over()来判定每次加的数值的符号,只有第一个数值是正号,其他的都取其相反数。
SQL> select empno,ename,sal,
2 sum(case when rn=1 then sal else -sal end) over(order by sal) as running_diff
3 from
4 (
5 select empno,ename,sal,row_number() over(order by sal) rn
6 from emp
7 where deptno=10
8 );
EMPNO ENAME SAL RUNNING_DIFF
---------- ---------- ---------- ------------
7934 MILLER 1300 1300
7782 CLARK 2450 -1150
7839 KING 5000 -6150
SQL> select empno,ename,sal,
2 sum(case when rn=1 then sal else -sal end) over(order by sal) as running_diff
3 from
4 (
5 select empno,ename,sal,row_number() over(order by sal) rn
6 from emp
7 where deptno=10
8 );
EMPNO ENAME SAL RUNNING_DIFF
---------- ---------- ---------- ------------
7934 MILLER 1300 1300
7782 CLARK 2450 -1150
7839 KING 5000 -6150
相关文章推荐
- oracle 用over进行累计计算
- oracle实现累加,累计百分比计算
- oracle 利用窗口函数计算合计、上月、下月及累计值等
- ORACLE计算累计和
- Oracle转出csv文件中出现科学计算法的解决方法
- Oracle根据日期计算某月的天数
- 自定义oracle版函数来计算年龄(规则一)
- Oracle一些日期时间的计算
- Oracle 计算.索引数据大小,表数据大小,以及表分区中某个分区的数据大小
- oracle 计算查询问题
- Oracle计算时间差
- oracle周数计算
- 在oracle中计算表空间占用的物理空间
- Oracle中计算两个时间段的时分秒天周数语句
- Oracle BIEE 中的时间维与时间轴函数,同期,同比,环比,累计,同期累计计算
- ORACLE日期类型的计算
- ORACLE计算一年的12个月份及一些日期函数
- 用Oracle RATIO_TO_REPORT计算总数百分比
- Oracle计算时间差表达式