我试图从温度测量中滤除不正确的峰值。例如,我的平均温度为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)
也揭示了
成功! (没有结果显示)
这对我来说似乎是个错误。有什么建议吗?
答案 0 :(得分:0)
这听起来像你想要的是
SELECT temperature FROM sensor WHERE temperature > 4
要实现使用STDDEV和MEAN消除超出范围值的原始目标,请查看Kapacitor。它是InfluxDB的批处理/流处理伴侣,支持任意用户定义的函数,以及随时间维护状态。在InfluxDB中还没有子功能或HAVING子句,所以它无法做到你想要的。