PostgreSQL - 时间序列插值

时间:2016-07-14 23:35:41

标签: postgresql

我有一个表“表演”,其中包含“日期”和“计数”栏目。 但是,行是稀疏的,即有很多天没有行,这隐含地意味着count = 0。 在运行时我可以做一个查询:

date       count
2016-7-15  3
2016-7-12  1
2016-7-11  2

会给我这个:

date       count
2016-7-15  3
2016-7-14  0
2016-7-13  0
2016-7-12  1
2016-7-11  2

1 个答案:

答案 0 :(得分:1)

您可以使用generate_series()left join

with q as (<your query here>)
select s.dte, coalesce(q.count, 0) as count
from (select generate_series(min(q.date), max(q.date), interval '1 day') as dte
      from q
     ) s left join
     q
     on s.dte = q.date;