我正在使用pipelinedb测试来自传感器的数据流的一些分析。例如,我希望能够在流中找到由聚合定义的事件。例如,查找最近5分钟内最高(温度)和最低(温度)之间的差值超过一定范围的事件。
当尝试将聚合放在WHERE子句中时,我收到一条错误消息,类似于“连续视图中不允许聚合where类”。
我是不是漏掉了什么,还是根本不可能?
另外,我非常非常喜欢pipelinedb!
嗯,pipelinedb说:“连续查询不支持HAVING子句”。
我想要做的是:
我有一个名为geo_vital_stream的流,它将一些传感器数据与地理位置一起发送。目前我感兴趣的是
insert into geo_vital_stream (device_id, user_id, measured_at, heartrate, energy, eda, lon, lat) VALUES( 'A005D8-E4 2.0',1,'2015-10-08 15:04:33.134000+02',96.8497201823,351.056269367,0.505791,8.07154018407,52.9531484103 );我的简历是这样的:
CREATE CONTINUOUS VIEW cv_sensor_eda AS
SELECT user_id::integer,
MAX(eda::numeric) - MIN(eda::numeric) as range_eda
FROM geo_vital_stream
WHERE (measured_at > clock_timestamp() - interval '1 minutes')
GROUP BY user_id现在,我只对那些“事件”感兴趣,在这些事件中,范围(range_eda在最后一分钟执行某个值)。
发布于 2015-10-07 02:14:44
在SQL子句中使用聚合实际上不是合法的WHERE。这是通过使用HAVING子句实现的,但在这里似乎不需要这样做。由于聚合跨多行计算值,因此我不清楚如何根据聚合(min、max)跨多个事件检索单个事件。你能举例说明每个事件是什么样子吗?
https://stackoverflow.com/questions/32869701
复制相似问题