2016-03-09 97 views
1

我試圖從我的溫度測量中濾除不正確的峯值。例如,我的平均值爲15°C,變化不大。但有時我的傳感器發送0°C或4°C,這是發送錯誤。我試過influxdb:如何通過stddev過濾查詢

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

>這似乎工作。 它不工作。該查詢沒有格式錯誤,並且已正確收到,因此管理界面報告「成功」,但「沒有顯示結果」意味着沒有與您的查詢結果相匹配的內容。 函數在SELECT子句之外無效。這似乎是管理界面中的一個錯誤,它不報告語法錯誤。 對於所有查詢,我都建議使用[CLI](https://docs.influxdata.com/influxdb/v0.11/tools/shell/),因爲管理界面遮擋了太多東西。 – beckettsean

回答

0

這聽起來像你想要的是

SELECT temperature FROM sensor WHERE temperature > 4

爲了實現使用STDDEV的你原來的目標,意味着消除了範圍值,考慮Kapacitor。它是InfluxDB的批處理/流處理伴侶,支持任意用戶定義的功能,以及隨時間推移維護狀態。 InfluxDB中沒有子功能或HAVING子句,所以它不能做你想做的事情。