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"
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
_time,
location
ORDER BY
location,
_time
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.