按照组聚合的子句
使用 GROUP BY 子句按值对数据进行分组。
GROUP BY 是一个可选子句,用于对所有列和列表中的表达式具有相同值的行进行分组。
要为每个组输出聚合,需在SELECT语句中包含一个聚合函数或选择器函数。
当GROUP BY 出现在查询中时,SELECT 列表只能使用出现在GROUP BY 列表中的列或聚合表达式。
GROUP BY 可以使用在 SELECT 子句中定义的列别名。GROUP BY 不能使用名为 time 的别名。在 GROUP BY 列表中,time 始终指的是测量 time 列。
语法
SELECT
AGGREGATE_FN(field1),
tag1
FROM measurement
GROUP BY tag1
示例
按标签值分组数据
SELECT
AVG("water_level") AS "avg_water_level",
"location"
FROM "h2o_feet"
GROUP BY "location"
按标签将结果分组为15分钟时间间隔:
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