group() function

The group() function groups records based on their values for specific columns. It produces tables with new group keys based on provided properties. Specify an empty array of columns to ungroup data or merge all input tables into a single output table.

group(columns: ["host", "_measurement"], mode:"by")

// OR

group(columns: ["_time"], mode:"except")

// OR


For more information about Flux table grouping, see Data model - Restructure tables.

Group does not guarantee sort order

group() does not guarantee the sort order of output records. To ensure data is sorted correctly, use sort() after group().

    |> group()
    |> sort(columns: ["_time"])



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


The mode used to group columns. Default is "by". The following modes are available:

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


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


The following examples use data provided by the sampledata package to show how group() transforms data.

Group by specific columns

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

View input and output

Group by everything except time

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

View input and output

Ungroup data

import "sampledata"

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

View input and output

Upgrade to InfluxDB Cloud or InfluxDB 2.0!

InfluxDB Cloud and InfluxDB OSS 2.0 ready for production.