InfluxDB Docs

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 of n 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 time t.
    • x(t) is the value at time t.
    • k = 2 / (1 + n).
  • The average over a period populated by only null values is null.
  • 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:
_timetag_value
0001tvnull
0002tv10
0003tv20
Query:
// ...
  |> exponentialMovingAverage(n: 2)
Output table:
_timetag_value
0002tv10
0003tv16.67