【发布时间】:2022-01-21 21:36:06
【问题描述】:
我有一个包含 3 个月数据的交易表:
查询:
SELECT a.branch,
a.dt_acc,
a.ct_id,
TRUNC(a.date, 'MONTH'),
COUNT(*) a_count
FROM a_transactions a
WHERE a.v_date BETWEEN '01.03.2019' and '31.05.2019'
GROUP BY a.branch, a.dt_acc, a.ct_id, TRUNC(a.date, 'MONTH');
结果:
| BRANCH | ACC | ID | TRUNC(A.DATE,'MONTH') | A_COUNT |
|---|---|---|---|---|
| 1 | 3 | 154 | 01.03.2019 | 1 |
| 1 | 3 | 154 | 01.04.2019 | 1 |
| 1 | 3 | 154 | 01.05.2019 | 1 |
每个月,a_count 打印一条记录。 我需要a_count来统计前几个月的金额,即如果3月份a_count等于1,4月份也有记录,a_count应该已经是2,如果5月份也有记录,那么a_count应该是 3
我需要这个结果:
| BRANCH | ACC | ID | TRUNC(A.DATE,'MONTH') | A_COUNT |
|---|---|---|---|---|
| 1 | 3 | 154 | 01.03.2019 | 1 |
| 1 | 3 | 154 | 01.04.2019 | 2 |
| 1 | 3 | 154 | 01.05.2019 | 3 |
【问题讨论】:
-
您可以使用窗口函数来获取运行总计
-
你有权限在你的数据库上创建表吗?