文档文档

计算移动平均值

此页面记录了早期版本的 InfluxDB OSS。InfluxDB OSS v2 是最新的稳定版本。请参阅等效的 InfluxDB v2 文档: 计算移动平均值

使用 movingAverage()timedMovingAverage() 函数返回数据的移动平均值。

data
  |> movingAverage(n: 5)

// OR

data
  |> timedMovingAverage(every: 5m, period: 10m)

movingAverage()

对于表中的每一行,movingAverage() 返回当前值和先前值的平均值,其中 n 是用于计算平均值的总值数。

如果 n = 3

行号计算
1行数不足
2行数不足
3(第 1 行 + 第 2 行 + 第 3 行) / 3
4(第 2 行 + 第 3 行 + 第 4 行) / 3
5(第 3 行 + 第 4 行 + 第 5 行) / 3

给定以下输入

_time_value
2020-01-01T00:01:00Z1.0
2020-01-01T00:02:00Z1.2
2020-01-01T00:03:00Z1.8
2020-01-01T00:04:00Z0.9
2020-01-01T00:05:00Z1.4
2020-01-01T00:06:00Z2.0

以下将返回

|> movingAverage(n: 3)
_time_value
2020-01-01T00:03:00Z1.33
2020-01-01T00:04:00Z1.30
2020-01-01T00:05:00Z1.36
2020-01-01T00:06:00Z1.43

timedMovingAverage()

对于表中的每一行,timedMovingAverage() 返回当前值和先前 period(持续时间)中所有行值的平均值。它以 every 参数定义的频率返回移动平均值。

下图中的每种颜色代表用于计算平均值的时间段以及返回表示平均值的点的时间。如果 every = 30mperiod = 1h

0:000:301:001:302:002:303:003:002:302:001:301:000:30

给定以下输入

_time_value
2020-01-01T00:01:00Z1.0
2020-01-01T00:02:00Z1.2
2020-01-01T00:03:00Z1.8
2020-01-01T00:04:00Z0.9
2020-01-01T00:05:00Z1.4
2020-01-01T00:06:00Z2.0

以下将返回

|> timedMovingAverage(
  every: 2m,
  period: 4m
)
_time_value
2020-01-01T00:02:00Z1.000
2020-01-01T00:04:00Z1.333
2020-01-01T00:06:00Z1.325
2020-01-01T00:06:00Z1.150

此页对您有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像目前一样使用它,而无需对代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已公开发布 Alpha 版

InfluxDB 3 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个作为 Alpha 版本一部分的产品。

InfluxDB 3 Core 是我们新的开源产品。它是用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何入门的更多信息,请查看