sql - sql查询计算总和并从前几行添加总和
问题描述
这是我的桌子 T1
dat_dt credit debit
-------- ------ -----
22-02-2019 10 5
25-02-2019 30 60
10-03-2019 50 40
13-03-2019 100 10
我想生成以下输出
max_date cr_sum progressive credit dr_sum progressive debit
-------- ------ ------------------ ------ -----------------
25-02-2019 40 40 65 65
13-03-2019 150 190 50 115
我想计算每个月的信用和借方的总和,累进信用是当月的信用总和加上上个月的累进信用的列。累进借记也是一样。max_date 是每个月的最大日期。除了使用循环之外,还有什么简单的方法可以得到这个输出吗?
解决方案
你可以试试下面 -
select max(dat_date) as max_date,sum(credit) as cr_sum,
sum(credit) over(order by EXTRACT(month FROM dat_date),EXTRACT(year FROM dat_date)) as progressive_credit,
sum(debit) as dr_sum,
sum(debit) over(order by EXTRACT(month FROM dat_date),EXTRACT(year FROM dat_date)) as progressive_debit
group by EXTRACT(month FROM dat_date),EXTRACT(year FROM dat_date)
推荐阅读
- sql - 原生查询,如果参数为 null 或为空,则使 WHERE 有条件
- c++ - 为什么野牛仍在使用 `int yylex(void)` 并且找不到 `int yylex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param)`?
- c++ - 如何在 Qt C++ 中更改光标
- vue.js - 如何在 element-ui 中手动调用 filterHandler?
- .net-core - 生成仅使用名称保存文件的谷歌云存储的 URL
- c - 为什么使用 struct 有效但 typedef struct 无效?
- react-native - 如何更改 React Native Swiper 点的默认位置?
- class - required:true 在一个地方工作,但不在另一个地方工作在同一个表格上 [Rails form_for]
- html - Bootstrap页脚生成水平条的问题
- cordova - Ionic 3:从 Firebase 下载图像时出现 Null 异常的 FileTransferError