docs-v2/content/influxdb/v2.1/query-data/flux/cumulativesum.md

2.0 KiB

title seotitle list_title description weight menu influxdb/v2.1/tags related list_query_example
Query cumulative sum Query cumulative sum in Flux Cumulative sum Use the `cumulativeSum()` function to calculate a running total of values. 210
influxdb_2_1
parent name
Query with Flux Cumulative sum
query
cumulative sum
/{{< latest "flux" >}}/stdlib/universe/cumulativesum/
cumulative_sum

Use the [cumulativeSum() function](/{{< latest "flux" >}}/stdlib/universe/cumulativesum/) 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()](/{{< latest "flux" >}}/stdlib/universe/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()