Postgresql 0数据的Postgres占位符

Postgresql 0数据的Postgres占位符,postgresql,Postgresql,我有一些博士后的数据如下: date | count 2015-01-01 | 20 2015-01-02 | 15 2015-01-05 | 30 date | count 2015-01-01 | 20 2015-01-02 | 15 2015-01-03 | 0 2015-01-04 | 0 2015-01-05 | 30 我想运行一个查询,用0提取缺失日期的数据,如下所示: date | count 2015-01-01 | 20 2015-0

我有一些博士后的数据如下:

date       | count
2015-01-01 | 20
2015-01-02 | 15
2015-01-05 | 30
date       | count
2015-01-01 | 20
2015-01-02 | 15
2015-01-03 |  0
2015-01-04 |  0
2015-01-05 | 30
我想运行一个查询,用0提取缺失日期的数据,如下所示:

date       | count
2015-01-01 | 20
2015-01-02 | 15
2015-01-05 | 30
date       | count
2015-01-01 | 20
2015-01-02 | 15
2015-01-03 |  0
2015-01-04 |  0
2015-01-05 | 30

这是一个非常大的日期范围,我需要它来填补所有的空白。仅使用SQL如何实现这一点?

这些数据将流向何处?到外部源或其他表或视图

可能有更好的解决方案,但您可以创建一个新表(或在excel中,无论数据在哪里),该表具有所需的完整日期范围和另一个空值整列。然后用当前数据集更新该表,然后将所有空值替换为零

这确实是一种迂回的做事方式,但它会奏效

我没有足够的代表发表评论:(

这也是一个很好的参考

给定一张表格,其中包含:

     d      | c  
------------+----
 2015-01-01 | 20
 2015-01-02 | 15
 2015-01-05 | 30
运行

select fake.d, coalesce(j.c, 0) as c
from (select min(d) + generate_series(0,7,1) as d from junk) fake
     left outer join junk j on fake.d=j.d;
让我们:

     d      |     c 
------------+----------
 2015-01-01 |       20
 2015-01-02 |       15
 2015-01-03 |        0
 2015-01-04 |        0
 2015-01-05 |       30
 2015-01-06 |        0
 2015-01-07 |        0
 2015-01-08 |        0

当然,您可以调整系列的开始日期、运行时间等。

我不明白为什么会有不同。它将插入一个需要纯SQL的报告框架,因此我根本无法用代码来操作它。请注意,问题应该作为注释输入到我的帖子中,而不是作为答案。