You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache IoTDB中按时间分组查询不同设备同测点的聚合值?

Apache IoTDB按时间戳分组计算多设备测点总和

场景说明

你的原始数据:

Time 1, Device 1.Measuring point;
Time 1, Device 2.Measuring point;
Time 2, Device 1.Measuring point;
Time 2, Device 2.Measuring point

需求是按Time 1、Time 2分组,计算同一时间戳下两个设备测点的数值之和。

解决方案

GROUP BY LEVEL是用于设备层级的聚合逻辑,不适合你的时间分组需求,应该使用**GROUP BY TIME**子句实现按时间戳分组聚合。

核心SQL命令

假设数据存储路径为root.Device1和root.Device2,测点名为MeasuringPoint,执行以下语句:

SELECT sum(*) 
FROM root.Device1.MeasuringPoint, root.Device2.MeasuringPoint 
GROUP BY TIME;

如果需要限定只计算指定时间戳(比如Time1和Time2)的结果,添加WHERE条件:

SELECT sum(*) 
FROM root.Device1.MeasuringPoint, root.Device2.MeasuringPoint 
WHERE time = '你的Time1时间字符串' OR time = '你的Time2时间字符串'
GROUP BY TIME;

命令解释

  • sum(*):对同一时间戳下所有选中的测点值求和
  • GROUP BY TIME:按原始数据的时间戳分组,每个时间戳对应一条聚合结果
  • 确保FROM子句正确包含所有需要聚合的测点全路径

另外,也可以用对齐查询直接计算求和结果,效果一致:

SELECT (Device1.MeasuringPoint + Device2.MeasuringPoint) AS total_sum 
FROM root.Device1, root.Device2 
ALIGN BY TIME;

ALIGN BY TIME会自动对齐同一时间戳的多设备数据,直接输出每个时间戳的求和值。


内容的提问来源于stack exchange,提问作者Thoreau I

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 20:13:18