InfluxDB获得移动平均线的最大值

时间:2017-03-02 11:14:49

标签: max influxdb moving-average

要获得InfluxDB中系列的移动平均值,您可以执行以下操作:

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

(来自influxdb documentation

这将返回每个点上具有移动平均值的数据集。 但是我想只得到该数据集的最大值。

当然我可以在我的脚本中执行此操作,但之后我必须首先下载移动平均线的所有数据,然后在本地处理它。 (我的InfluxDB服务器不在本地网络上)

在没有获得完整的移动平均数据的情况下,有没有办法让移动平均线的最大值?

2 个答案:

答案 0 :(得分:2)

最近发布了1.2版,支持子查询 https://docs.influxdata.com/influxdb/v1.2/query_language/data_exploration/#subqueries

这将是解决问题的一种方法。您也可以使用较长的时间间隔进行GROUP BY。当我查看文档时,他们甚至表明:

带有嵌套函数和GROUP BY time()子句的MOVING_AVERAGE()查询:

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

答案 1 :(得分:1)

感谢Nate Good指出我的子查询,我最终得到了以下解决方案:

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'}]})