微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 PSQL 中从包含 JSONB 的表创建物化视图

如何解决在 PSQL 中从包含 JSONB 的表创建物化视图

您好,提前感谢您的帮助,

我正在尝试使用具有以下结构的 python 库 psycopg2 使用 Psql 创建物化视图:

false

我想从中创建物化视图的表是使用以下查询创建的:

<materialized_view name>
 time TIMESTAMPTZ NOT NULL,robot_id TEXT,data JSONB

然后,为了测试是否可以生成输出与物化视图结构相同的查询,我执行了以下查询

CREATE TABLE IF NOT EXISTS mainTable (
 time TIMESTAMPTZ NOT NULL,data JSONB);

最后一个查询输出符合预期,可以在这里看到: Result of running the previous query

但是,当我想包含相同的查询以创建物化视图时,我在使用 GROUP BY 时遇到了一些我不知道如何解决错误

我用来创建物化视图的查询如下:

SELECT time_bucket('30s',time) as Bucket,robot_id,json_build_object('value',avg((data->>'value')::numeric),'field',data->>'field') as data
FROM mainTable
WHERE time >= '2021-05-20 09:00:00' AND time <= '2021-05-20 10:00:00'
GROUP BY data->>'field',bucket,robot_id
ORDER BY 1
LIMIT 10;

当我运行此命令时,物化视图已正确创建,但是当我运行查询时:

CREATE MATERIALIZED VIEW IF NOT EXISTS mainTable_1sec
                             WITH (timescaledb.continuous) AS
                             SELECT time_bucket('1s',json_build_object('field',data->>'field','value',avg(cast(data->>'value' as double precision))) as avg_data,robot_id
                             FROM mainTable
                             GROUP BY Bucket,robot_id
                             WITH NO DATA;

我收到以下错误

SELECT * 
FROM mainTable_1sec 
LIMIT 10;

再次感谢您的帮助,

乔迪。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。