Postgres过去n个月的物化视图

问题描述 投票:0回答:1

我想把过去12个月的数据保存在Postgresql的一个实体化视图中。

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'在创建视图时被评估,所以数据将永远增长,我想有一个固定的数据范围。

我看到views不接受参数。我想dropcreate view everyday,但我相信有更好的选择。

postgresql materialized-views
1个回答
0
投票

如果你需要,我找到了问题。原文和解决方案的区别在于'now'与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')));
© www.soinside.com 2019 - 2024. All rights reserved.