Documentation

timedMovingAverage() function

The timedMovingAverage() function calculates the mean of values in a defined time range at a specified frequency.

Function type: Transformation

timedMovingAverage(
  every: 1d,
  period: 5d,
  column="_value"
)

Parameters

every

The frequency of time windows.

Data type: Duration

period

The length of each averaged time window. A negative duration indicates start and stop boundaries are reversed.

Data type: Duration

column

The column used to compute the moving average. Defaults to "_value".

Data type: String

Examples

Calculate a seven day moving average every day
from(bucket: "example-bucket"):
  |> range(start: -7y)
  |> filter(fn: (r) =>
    r._measurement == "financial" and
    r._field == "closing_price"
  )
  |> timedMovingAverage(every: 1y, period: 5y)
Calculate a five year moving average every year
from(bucket: "example-bucket"):
  |> range(start: -50d)
  |> filter(fn: (r) =>
    r._measurement == "financial" and
    r._field == "closing_price"
  )
  |> timedMovingAverage(every: 1d, period: 7d)

Function definition

timedMovingAverage = (every, period, column="_value", tables=<-) =>
  tables
    |> window(every: every, period: period)
    |> mean(column:column)
    |> duplicate(column: "_stop", as: "_time")
    |> window(every: inf)

New! Cloud or OSS?

InfluxDB OSS 2.0 now generally available!

InfluxDB OSS 2.0 is now generally available and ready for production use. See the InfluxDB OSS 2.0 release notes.

For information about upgrading to InfluxDB OSS 2.0, see: