文档文档

计算移动平均值

使用 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:00:00Z1.0
2020-01-01T00:30:00Z1.2
2020-01-01T01:00:00Z1.8
2020-01-01T01:30:00Z0.9
2020-01-01T02:00:00Z1.4
2020-01-01T02:30:00Z2.0
2020-01-01T03:00:00Z1.9

以下将返回

|> timedMovingAverage(every: 30m, period: 1h)
_time_value
2020-01-01T00:30:00Z1.0
2020-01-01T01:00:00Z1.1
2020-01-01T01:30:00Z1.5
2020-01-01T02:00:00Z1.35
2020-01-01T02:30:00Z1.15
2020-01-01T03:00:00Z1.7
2020-01-01T03:00:00Z2

此页对您有帮助吗?

感谢您的反馈!


Flux 的未来

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

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

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

有关更多信息,请查看