在下表中
----------------------------
| id | day | count |
----------------------------
1 2013-01-01 10
1 2013-01-05 20
1 2013-01-08 45
第二行和第三行计数列是累积的,即20 =(第一行10次+ 10次额外计数)和45次(第二行20次+ 25次额外计数)。如何在Postgresql中使用累积添加插入第二行和第三行(以及进一步)?
注意:从程序中的变量读取附加计数。因此,目的是将此值存储在Postgresql的“count”列中,但也将其添加为最后一个条目按升序日期顺序找到的“count”。
答案 0 :(得分:1)
由于您没有说附加计数来自哪里,我假设有一个附加计数列:
select *,
sum(additional_count) over(order by "day") "count"
from t
order by "day"
作为窗口函数的sum
函数执行总计。它使用over
子句时是一个窗口函数。
答案 1 :(得分:0)
如果问题是带有select的insert语句如何:
insert into x(id, day, count)
select 1, current_timestamp,
coalesce((select max(count) from x), 0) + 10;
但这不一定是解决问题的最佳方法。