2017-03-02 39 views
1

的最大值要獲得InfluxDB您提供了一系列的移動平均可以做到以下幾點:InfluxDB得到均線

SELECT MOVING_AVERAGE(<field_key>,<window>) FROM <measurement_name> 

(從influxdb documentation

,將返回的數據集與移動每個點的平均值。 但是我想只獲取該數據集的最大值。

當然我可以在腳本中這樣做,但是我必須首先下載移動平均的所有數據,然後在本地處理它。 (我的InfluxDB服務器不在本地網絡上)

有沒有辦法獲得只有移動平均的最大值沒有得到完整的移動平均數據?

回答

1

感謝內特好誰向我指出對子查詢我結束了以下解決方案:

SELECT MAX(moving_average) FROM (SELECT MOVING_AVERAGE(<field_key>,<window>) FROM <measurement_name>) 

這會給你一個最大值和它發生的時間。對於我自己的情況(使用Python客戶端)它給了我這個結果:

ResultSet({'('power', None)': [{'max': 17147.76, 'time': '2016-08-19T19:18:48Z'}]}) 
2

1.2版與子查詢 https://docs.influxdata.com/influxdb/v1.2/query_language/data_exploration/#subqueries

這將是解決你的問題的一種方式支持最近發佈。您大概也可以使用較長的時間間隔進行GROUP BY。當我看文檔甚至表明:

具有嵌套函數的MOVING_AVERAGE()查詢和GROUP BY時間()子句:

SELECT MOVING_AVERAGE(<function>(<field_key>),<window>) FROM <measurement_name> WHERE <stuff> GROUP BY time(<time_interval>)

+0

子查詢看起來不錯,我會檢查。如果我正確地理解了嵌套函數,那麼嵌套函數首先被執行但是我首先需要移動平均值 – Sebastian

+0

是的,對不起,我讀錯了。你是對的。 –