Back to Influxdb

group() function

content/flux/v0/stdlib/universe/group.md

latest8.0 KB
Original Source
<!------------------------------------------------------------------------------ IMPORTANT: This page was generated from comments in the Flux source code. Any edits made directly to this page will be overwritten the next time the documentation is generated. To make updates to this documentation, update the function comments above the function definition in the Flux source code: https://github.com/influxdata/flux/blob/master/stdlib/universe/universe.flux#L752-L754 Contributing to Flux: https://github.com/influxdata/flux#contributing Fluxdoc syntax: https://github.com/influxdata/flux/blob/master/docs/fluxdoc.md ------------------------------------------------------------------------------->

group() regroups input data by modifying group key of input tables.

Note: Group does not guarantee sort order. To ensure data is sorted correctly, use sort() after group().

Function type signature
js
(<-tables: stream[A], ?columns: [string], ?mode: string) => stream[A] where A: Record

{{% caption %}} For more information, see Function type signatures. {{% /caption %}}

Parameters

columns

List of columns to use in the grouping operation. Default is [].

Note: When columns is set to an empty array, group() ungroups all data merges it into a single output table.

mode

Grouping mode. Default is by.

Available modes:

  • by: Group by columns defined in the columns parameter.
  • except: Group by all columns except those in defined in the columns parameter.

tables

Input data. Default is piped-forward data (<-).

Examples

Group by specific columns

js
import "sampledata"

sampledata.int()
    |> group(columns: ["_time", "tag"])

{{< expand-wrapper >}} {{% expand "View example input and output" %}}

Input data

_time_value*tag
2021-01-01T00:00:00Z-2t1
2021-01-01T00:00:10Z10t1
2021-01-01T00:00:20Z7t1
2021-01-01T00:00:30Z17t1
2021-01-01T00:00:40Z15t1
2021-01-01T00:00:50Z4t1
_time_value*tag
2021-01-01T00:00:00Z19t2
2021-01-01T00:00:10Z4t2
2021-01-01T00:00:20Z-3t2
2021-01-01T00:00:30Z19t2
2021-01-01T00:00:40Z13t2
2021-01-01T00:00:50Z1t2

Output data

*_time_value*tag
2021-01-01T00:00:00Z-2t1
*_time_value*tag
2021-01-01T00:00:00Z19t2
*_time_value*tag
2021-01-01T00:00:10Z10t1
*_time_value*tag
2021-01-01T00:00:10Z4t2
*_time_value*tag
2021-01-01T00:00:20Z7t1
*_time_value*tag
2021-01-01T00:00:20Z-3t2
*_time_value*tag
2021-01-01T00:00:30Z17t1
*_time_value*tag
2021-01-01T00:00:30Z19t2
*_time_value*tag
2021-01-01T00:00:40Z15t1
*_time_value*tag
2021-01-01T00:00:40Z13t2
*_time_value*tag
2021-01-01T00:00:50Z4t1
*_time_value*tag
2021-01-01T00:00:50Z1t2

{{% /expand %}} {{< /expand-wrapper >}}

Group by everything except time

js
import "sampledata"

sampledata.int()
    |> group(columns: ["_time"], mode: "except")

{{< expand-wrapper >}} {{% expand "View example input and output" %}}

Input data

_time_value*tag
2021-01-01T00:00:00Z-2t1
2021-01-01T00:00:10Z10t1
2021-01-01T00:00:20Z7t1
2021-01-01T00:00:30Z17t1
2021-01-01T00:00:40Z15t1
2021-01-01T00:00:50Z4t1
_time_value*tag
2021-01-01T00:00:00Z19t2
2021-01-01T00:00:10Z4t2
2021-01-01T00:00:20Z-3t2
2021-01-01T00:00:30Z19t2
2021-01-01T00:00:40Z13t2
2021-01-01T00:00:50Z1t2

Output data

_time*_value*tag
2021-01-01T00:00:20Z-3t2
_time*_value*tag
2021-01-01T00:00:00Z-2t1
_time*_value*tag
2021-01-01T00:00:50Z1t2
_time*_value*tag
2021-01-01T00:00:50Z4t1
_time*_value*tag
2021-01-01T00:00:10Z4t2
_time*_value*tag
2021-01-01T00:00:20Z7t1
_time*_value*tag
2021-01-01T00:00:10Z10t1
_time*_value*tag
2021-01-01T00:00:40Z13t2
_time*_value*tag
2021-01-01T00:00:40Z15t1
_time*_value*tag
2021-01-01T00:00:30Z17t1
_time*_value*tag
2021-01-01T00:00:00Z19t2
2021-01-01T00:00:30Z19t2

{{% /expand %}} {{< /expand-wrapper >}}

Ungroup data

js
import "sampledata"

// Merge all tables into a single table
sampledata.int()
    |> group()

{{< expand-wrapper >}} {{% expand "View example input and output" %}}

Input data

_time_value*tag
2021-01-01T00:00:00Z-2t1
2021-01-01T00:00:10Z10t1
2021-01-01T00:00:20Z7t1
2021-01-01T00:00:30Z17t1
2021-01-01T00:00:40Z15t1
2021-01-01T00:00:50Z4t1
_time_value*tag
2021-01-01T00:00:00Z19t2
2021-01-01T00:00:10Z4t2
2021-01-01T00:00:20Z-3t2
2021-01-01T00:00:30Z19t2
2021-01-01T00:00:40Z13t2
2021-01-01T00:00:50Z1t2

Output data

_time_valuetag
2021-01-01T00:00:00Z-2t1
2021-01-01T00:00:10Z10t1
2021-01-01T00:00:20Z7t1
2021-01-01T00:00:30Z17t1
2021-01-01T00:00:40Z15t1
2021-01-01T00:00:50Z4t1
2021-01-01T00:00:00Z19t2
2021-01-01T00:00:10Z4t2
2021-01-01T00:00:20Z-3t2
2021-01-01T00:00:30Z19t2
2021-01-01T00:00:40Z13t2
2021-01-01T00:00:50Z1t2

{{% /expand %}} {{< /expand-wrapper >}}