exponentialMovingAverage() function
The exponentialMovingAverage()
function calculates the exponential moving average of values
in the _value
column grouped into n
number of points, giving more weight to recent data.
Function type: Aggregate
exponentialMovingAverage(n: 5)
Exponential moving average rules
- The first value of an exponential moving average over
n
values is the algebraic mean ofn
values. - Subsequent values are calculated as
y(t) = x(t) * k + y(t-1) * (1 - k)
, where:y(t)
is the exponential moving average at timet
.x(t)
is the value at timet
.k = 2 / (1 + n)
.
- The average over a period populated by only
null
values isnull
. - Exponential moving averages skip
null
values.
Parameters
n
The number of points to average.
Data type: Integer
Examples
Calculate a five point exponential moving average
from(bucket: "example-bucket"):
|> range(start: -12h)
|> exponentialMovingAverage(n: 5)
Table transformation with a two point exponential moving average
Input table:
_time | tag | _value |
---|---|---|
0001 | tv | null |
0002 | tv | 10 |
0003 | tv | 20 |
Query:
// ...
|> exponentialMovingAverage(n: 2)
Output table:
_time | tag | _value |
---|---|---|
0002 | tv | 10 |
0003 | tv | 16.67 |
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB and this documentation. To find support, the following resources are available:
InfluxDB Cloud and InfluxDB Enterprise customers can contact InfluxData Support.