2017-03-02 57 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

是的,对不起,我读错了。你是对的。 –