Documentation

GROUP BY clause

Use the GROUP BY clause to group data by values.

GROUP BY is an optional clause used to group rows that have the same values for all columns and expressions in the list. To output an aggregation for each group, include an aggregate or selector function in the SELECT statement. When GROUP BY appears in a query, the SELECT list can only use columns that appear in the GROUP BY list or in aggregate expressions.

GROUP BY can use column aliases that are defined in the SELECT clause. GROUP BY can’t use an alias named time. In a GROUP BY list, time always refers to the measurement time column.

Syntax

SELECT
  AGGREGATE_FN(field1),
  tag1
FROM measurement
GROUP BY tag1

Examples

Group data by tag values

SELECT
  AVG("water_level") AS "avg_water_level",
  "location"
FROM "h2o_feet" 
GROUP BY "location"
}

View example results

Group results in 15 minute time intervals by tag:

SELECT
  "location",
  DATE_BIN(INTERVAL '15 minutes', time, TIMESTAMP '2022-01-01 00:00:00Z') AS time,
  COUNT("water_level") AS count
FROM "h2o_feet"
WHERE 
  time >= timestamp '2019-09-17T00:00:00Z'
  AND time <= timestamp '2019-09-17T01:00:00Z'
GROUP BY
  DATE_BIN(INTERVAL '15 minutes', time, TIMESTAMP '2022-01-01 00:00:00Z'),
  location
ORDER BY
  location,
  time
}

View example results


Was this page helpful?

Thank you for your feedback!


Linux Package Signing Key Rotation

All signed InfluxData Linux packages have been resigned with an updated key. If using Linux, you may need to update your package configuration to continue to download and verify InfluxData software packages.

For more information, see the Linux Package Signing Key Rotation blog post.

State of the InfluxDB Cloud (IOx) documentation

The new documentation for InfluxDB Cloud backed by InfluxDB IOx is a work in progress. We are adding new information and content almost daily. Thank you for your patience!

If there is specific information you’re looking for, please submit a documentation issue.

InfluxDB Cloud powered by IOx