如何解决在 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 举报,一经查实,本站将立刻删除。