Influxdb:如何通过stddev过滤查询

时间:2016-03-09 18:49:56

标签: function filter max influxdb

我试图从温度测量中滤除不正确的峰值。例如,我的平均温度为15°C,变化很小。但有时我的传感器发送0°C或4°C,这是一个发送错误。我试过了

select temperature from "sensor" where temperature > mean(temperature) - stddev(temperature)

这似乎奏效了。但是,上限不是:

select temperature from "sensor" where temperature < mean(temperature) + stddev(temperature)

这只是揭示了

  

成功! (没有结果显示)

更糟糕的是

select temperature from "sensor" where temperature < max(temperature)

也揭示了

  

成功! (没有结果显示)

这对我来说似乎是个错误。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这听起来像你想要的是

SELECT temperature FROM sensor WHERE temperature > 4

要实现使用STDDEV和MEAN消除超出范围值的原始目标,请查看Kapacitor。它是InfluxDB的批处理/流处理伴侣,支持任意用户定义的函数,以及随时间维护状态。在InfluxDB中还没有子功能或HAVING子句,所以它无法做到你想要的。