docs-v2/content/influxdb/v1/flux/guides/cumulativesum.md

1.9 KiB

title seotitle list_title description weight menu list_query_example canonical v2
Query cumulative sum Query cumulative sum in Flux Cumulative sum Use the `cumulativeSum()` function to calculate a running total of values. 10
influxdb_v1
parent name
Query with Flux Cumulative sum
cumulative_sum /influxdb/v2/query-data/flux/cumulativesum/ /influxdb/v2/query-data/flux/cumulativesum/

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.

{{< flex >}} {{% flex-content "half" %}} Given the following input table:

_time _value
0001 1
0002 2
0003 1
0004 3
{{% /flex-content %}}
{{% flex-content "half" %}}
cumulativeSum() returns:
_time _value
0001 1
0002 3
0003 4
0004 7
{{% /flex-content %}}
{{< /flex >}}

{{% note %}} The examples below use the example data variable. {{% /note %}}

Calculate the running total of values
data
  |> 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().

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