文档文档

计算移动平均值

此页面记录了早期版本的 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 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近实时数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩,从而加快查询速度并优化存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看