按照组聚合的子句
InfluxDB 3核心正在进行公开测试
InfluxDB 3 Core 正在进行公开 alpha 测试,并可供测试和反馈,但不适合用于生产环境。产品和本文件都是进行中的工作。我们欢迎并鼓励您分享您对 alpha 版本的体验,并邀请您加入我们的公共频道以获取更新和分享反馈。
使用 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