Query cumulative sum

This page documents an earlier version of InfluxDB. InfluxDB v2.3 is the latest stable version. See the equivalent InfluxDB v2.3 documentation: Query cumulative sum.

Use the cumulativeSum() function to calculate a running total of values. cumulativeSum sums the values of subsequent records and returns each row updated with the summed total.

Given the following input table:

_time _value
0001 1
0002 2
0003 1
0004 3

cumulativeSum() returns:

_time _value
0001 1
0002 3
0003 4
0004 7

The examples below use the example data variable.

Calculate the running total of values
  |> cumulativeSum()

Use cumulativeSum() with aggregateWindow()

aggregateWindow() segments data into windows of time, aggregates data in each window into a single point, then removes the time-based segmentation. It is primarily used to downsample data.

aggregateWindow() expects an aggregate function that returns a single row for each time window. To use cumulativeSum() with aggregateWindow, use sum in aggregateWindow(), then calculate the running total of the aggregate values with cumulativeSum().

  |> aggregateWindow(every: 5m, fn: sum)
  |> cumulativeSum()

Was this page helpful?

Thank you for your feedback!

Set your InfluxDB URL

Upgrade to InfluxDB Cloud or InfluxDB 2.0!

InfluxDB Cloud and InfluxDB OSS 2.0 ready for production.