sum over用法

原创 2007年10月03日 11:41:00

问题:
TABLE如下
日期 收入 支出
2000/3/1 50 30
2000/3/2 45 60
2000/3/5 60 10
2000/3/5 60 10

显示结果如下:
日期 收入 支出 余額
2000/3/1 50 30 20
2000/3/2 45 60 5
2000/3/3 0 0 5
2000/3/4 0 0 5
2000/3/5 120 20 105
用sql语句实现

SQL> select * from cmd;

COLA                      COLB       COLC                                                          
------------------- ---------- ----------                                                          
01/09/2007 00:00:00         50         30                                                          
02/09/2007 00:00:00         45         60                                                          
03/09/2007 00:00:00         60         10                                                          
05/09/2007 00:00:00         60         10                                                          
05/09/2007 00:00:00         60         10                                                          
05/09/2007 00:00:00         60         50                                                          

已选择6行。

SQL> select cola 日期,colb 收入,colc 支出,
  2  sum(colb) over (order by cola rows between unbounded preceding and current row)
  3  -sum(colc) over (order by cola rows between unbounded preceding and current row) 余额
  4  from cmd;

日期                      收入       支出       余额                                               
------------------- ---------- ---------- ----------                                               
01/09/2007 00:00:00         50         30         20                                               
02/09/2007 00:00:00         45         60          5                                               
03/09/2007 00:00:00         60         10         55                                               
05/09/2007 00:00:00         60         10        105                                               
05/09/2007 00:00:00         60         10        155                                               
05/09/2007 00:00:00         60         50        165                                               

已选择6行。

SQL> select cola 日期,colb 收入,colc 支出,
  2  sum(colb) over (order by cola range unbounded preceding)
  3  -sum(colc) over (order by cola range unbounded preceding) 余额
  4  from cmd;

日期                      收入       支出       余额                                               
------------------- ---------- ---------- ----------                                               
01/09/2007 00:00:00         50         30         20                                               
02/09/2007 00:00:00         45         60          5                                               
03/09/2007 00:00:00         60         10         55                                               
05/09/2007 00:00:00         60         10        165                                               
05/09/2007 00:00:00         60         10        165                                               
05/09/2007 00:00:00         60         50        165                                               

已选择6行。

SQL> spool off

还有其它参数用法,只有在这里不适用如下:
select cola 日期,colb 收入,colc 支出,
sum(colb) over (partition by cola order by cola range unbounded preceding)
-sum(colc) over (partition by cola order by cola range unbounded preceding) 余额
from cmd;

sum over partition by函数的用法-但是查出来的数据格式不好给前台用,废弃

要求:按车牌号HOST_NO分组,合计CAR_PAY金额,最后合计所有金额,还要过滤出本月的时间 参考: http://blog.csdn.net/wawmg/article/details/4...

oracle转mysql过程中的sum over处理

项目需要,原来的系统很多的统计分析,

ORACLE的 SUM()OVER()函数的使用1

over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用。    over函数的参数:over(partition by columnname1 ...

oracle分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总 .

语法:sum(col1) over(partition by col2 order by col3 ) 准备数据: DEPT_ID ENAME ...

oracle分析函数sum/ration_to_report(column) over (partition by column order by column)

废话少说,看下面的例子:  1.sum(column) over(partition by column order by column) 2.ratio_to_report(column) ov...

sum over partition by 的用法

SQL> select n1,v1,nid,sum(nid) over(order by nid) as sum   2  from t1;         N1 V1            ...
  • wawmg
  • wawmg
  • 2014年11月06日 00:18
  • 8085

Oracle-分析函数之sum(...) over(...)

概述 Oracle函数 很久之前更新了一篇Oracle的函数博文  http://blog.csdn.net/yangshangwei/article/details/51425458,分析函数并没...
  • fjnpysh
  • fjnpysh
  • 2017年04月14日 09:27
  • 238

连续求和分析函数max(...)/min(...)/avg(...)/sum(...) over ... ——分析函数1

SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL ...

SQL中over用法大全

OVER(PARTITION BY)函数介绍 开窗函数                Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对...
  • moshansk
  • moshansk
  • 2016年09月06日 16:52
  • 11517

oracle over的用法;

对于通过OVER来做聚合,已经基本掌握了。但是要详细解释其原理,还是感觉有些说不清晰。所以只能结合实例来看了。在我们的查询中用到了一张表SalesOrder。下面是表结构和创建该表的T-SQL语句。 ...
  • zljjava
  • zljjava
  • 2012年11月22日 14:36
  • 9082
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sum over用法
举报原因:
原因补充:

(最多只允许输入30个字)