Sql 如何在TimescaleDB中的一个表上创建多个连续聚合?
我有这个Sql 如何在TimescaleDB中的一个表上创建多个连续聚合?,sql,postgresql-11,timescaledb,Sql,Postgresql 11,Timescaledb,我有这个系列表格及其超表格。我想对这个表中的数据进行不同的连续聚合 CREATE TABLE series ( time TIMESTAMPTZ PRIMARY KEY, value INTEGER ); SELECT create_hypertable('series', 'time'); CREATE VIEW mat_view1 WITH (timescaledb.continuous) AS SELECT time_bucket('1 day', time) AS d
系列
表格及其超表格。我想对这个表中的数据进行不同的连续聚合
CREATE TABLE series (
time TIMESTAMPTZ PRIMARY KEY,
value INTEGER
);
SELECT create_hypertable('series', 'time');
CREATE VIEW mat_view1
WITH (timescaledb.continuous) AS
SELECT time_bucket('1 day', time) AS day,
AVG(value)
FROM series
GROUP BY day;
CREATE VIEW mat_view2
WITH (timescaledb.continuous) AS
SELECT time_bucket('1 week', time) AS week,
COUNT(value)
FROM series
GROUP BY week;
但在PostgreSQL 11中似乎是不可能的-这是我运行上述查询时得到的结果:
ERROR: hypertable already has a continuous aggregate
RECOMMENDATION: hypertables currently only support a single continuous aggregate. Drop the other continuous aggreagate to add a new one.
甚至不可能在同一个表上创建不同的超表
ERROR: hypertable already has a continuous aggregate
RECOMMENDATION: hypertables currently only support a single continuous aggregate. Drop the other continuous aggreagate to add a new one.
有可能绕过这个限制吗?或者我是否应该使用另一种方法(例如,为每个连续聚合使用重复的
系列表:-x)?从TimescaleDB 1.4.0开始,这是受支持的,请参阅:
在此之前,时间刻度中不支持此操作,但是您可以执行以下操作:创建一个包含所有可能需要的详细信息的连续聚合,然后为第二个用例创建一个常规视图
CREATE VIEW mat_view1
使用(timescaledb.continuous)作为
选择时间(“1天”,时间)作为日期,
平均值(值)作为平均值,
计数(值)作为计数
从系列
按天分组;
将视图2创建为
选择时间(“1周”,天)作为周,
作为计数的总和(计数)
从mat_视图1
每周分组;
感谢您的快速回复。至少可以解决此问题。:-)我们需要等待时间刻度1.4。你能告诉我大概的发布日期吗?我能给你的大概时间是几周