计算移动平均值
此页面记录了早期版本的 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:00Z | 1.0 |
| 2020-01-01T00:02:00Z | 1.2 |
| 2020-01-01T00:03:00Z | 1.8 |
| 2020-01-01T00:04:00Z | 0.9 |
| 2020-01-01T00:05:00Z | 1.4 |
| 2020-01-01T00:06:00Z | 2.0 |
以下将返回
|> movingAverage(n: 3)
| _time | _value |
|---|---|
| 2020-01-01T00:03:00Z | 1.33 |
| 2020-01-01T00:04:00Z | 1.30 |
| 2020-01-01T00:05:00Z | 1.36 |
| 2020-01-01T00:06:00Z | 1.43 |
timedMovingAverage()
对于表中的每一行,timedMovingAverage() 返回当前值和先前 period(持续时间)中所有行值的平均值。它以 every 参数定义的频率返回移动平均值。
下图中的每种颜色代表用于计算平均值的时间段,以及返回表示平均值的点的时间。如果 every = 30m 且 period = 1h
给定以下输入
| _time | _value |
|---|---|
| 2020-01-01T00:01:00Z | 1.0 |
| 2020-01-01T00:02:00Z | 1.2 |
| 2020-01-01T00:03:00Z | 1.8 |
| 2020-01-01T00:04:00Z | 0.9 |
| 2020-01-01T00:05:00Z | 1.4 |
| 2020-01-01T00:06:00Z | 2.0 |
以下将返回
|> timedMovingAverage(
every: 2m,
period: 4m
)
| _time | _value |
|---|---|
| 2020-01-01T00:02:00Z | 1.000 |
| 2020-01-01T00:04:00Z | 1.333 |
| 2020-01-01T00:06:00Z | 1.325 |
| 2020-01-01T00:06:00Z | 1.150 |
此页对您有帮助吗?
感谢您的反馈!