PostgreSQL - 时间序列插值
问题描述:
我有一个表“表演”与列“日期”和“计数”。 然而,行是稀疏的,即有许多天的没有行,这隐含意味着计数= 0 有一个查询我能做到这一点,当这个运行:PostgreSQL - 时间序列插值
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
?
答
您可以使用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;
退房的文档 - 特别是'generate_series()':https://www.postgresql.org/docs/current/static/functions-srf。 HTML – Nicarus