最近n个月的Postgres物化视图

Postgres materialized view of last n months

我想在 Postgresql 的物化视图中保留最近 12 个月的数据。

CREATE MATERIALIZED VIEW IF NOT EXISTS last_12_months AS 
SELECT a, b, c FROM mytable 
WHERE created_at > date_trunc('day',('now'::timestamp - '1 year'::interval)));

问题是 'now' 是在视图创建时计算的,所以数据会永远增长,我希望有一个固定范围的数据。

我看到视图不接受参数。我认为 drop/create 每天都会查看,但我确信还有更好的选择。

如果你需要,我发现了问题。原始和解决方案之间的区别是 'now' vs now()

CREATE MATERIALIZED VIEW IF NOT EXISTS last_12_months AS 
SELECT a, b, c FROM mytable 
WHERE created_at > date_trunc('day',(now() - interval '1 year')));