sql - 使用 PostgreSQL 获取月份总和
问题描述
我有以下 SQL,按月显示总数:
select to_char(tanggal, 'mm') as month,
sum(nilai) as realisasi
from
tbl_pasar_dini
where (date_part('year', tanggal)= extract(year from timestamp 'NOW()'))
group by 1
这是结果:
月 | 现实主义 |
---|---|
01 | 2000 |
02 | 900 |
03 | 3000 |
04 | 200 |
05 | 5000 |
06 | 100 |
如何使总数累积,以便每个月的值都比上个月增加
解决方案
根据我从您的问题中解释的内容,您需要当前给定年份 2021 年所有月份的每个 realisasi 值的总和。因此,您可以重用给定的查询并执行此操作
select sum(realisasi) from (/* the select query you given */)
或只需稍作修改即可获得全部金额
select sum(nilai) as realisasi
from
tbl_pasar_dini
where (date_part('year', tanggal)= extract(year from timestamp 'NOW()'))
如果您还可以提供您的表结构,它会有所帮助。
编辑:所以从你的新评论中你想要的是每个月的运行总和。如果是这样,那么您必须使用 OVER 子句。
select to_char(tanggal, 'mm') as month,
sum(sum(nilai) OVER (ORDER BY month)) as realisasi
from
tbl_pasar_dini
where (date_part('year', tanggal)= extract(year from timestamp 'NOW()'))
group by 1
推荐阅读
- python - 如何将文本导入 Python 并创建 CSV 文件?
- pm2 - PM2-Logrotate 填满所有磁盘空间
- python - django 模板中的 URL 包含域
- c - 线程完成工作后出现分段错误
- javascript - 如何从库中覆盖现有的核心类?
- vue.js - 如何在 Vue 3 中正确使用组合 API 中的钩子
- javascript - 有没有办法从模块对象中的另一个访问方法?
- python - Python 使用 numpy.roll() 扭曲具有重复边缘的图像
- c# - 如何在 Tap 事件中更改元素的属性,并在“点击”不同元素时将其还原
- java - 如何实现一个线程相对于另一个线程的事务优先级