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的报告框架,因此我根本无法用代码来操作它。请注意,问题应该作为注释输入到我的帖子中,而不是作为答案。