我有一个测试表
add是计数一天的增加值,而删除一天的值,diff是不同的add和del字段加上上一个差异
其中日期间隔不是一天,在那里将生成相同的列,例如生成03.05.2018行的行,这是ADD = 0,DEL = 0,AND DIFF =以前的 4,在2018年5月11日之后生成到当前日期的行
答案 0 :(得分:1)
使用generate_series()
,然后使用left join
生成所有行:
select 1 as com_id, gs.dte,
coalesce(add, 0) as add, coalesce(del, 0) as del,
(sum(add) over (order by gs.dte) -
sum(del) over (order by gs.dte)
) as diff
from generate_series('2018-05-01'::date, current_date, interval '1 day') gs(dte) left join
test t
on t.date = gs.dte;
Here是一个学期。