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

GridDB Cloud中时间序列表按1小时间隔分组计算平均温度的实现方法

GridDB Cloud中时间序列表按1小时间隔分组计算平均温度的实现方法

嘿,我刚好折腾过类似的GridDB时间序列聚合需求,给你一个直接能跑通的解决方案,完全适配你的场景~

核心实现思路

GridDB支持标准SQL的TRUNC日期函数,它可以把时间戳截断到指定的时间粒度(比如小时、天、分钟)。我们只需要把timestamp字段截断到小时级别,然后按这个截断后的时间分组,再计算每组的温度平均值就可以了。

具体SQL查询语句

针对你的SensorData表,执行下面的SQL就能得到你想要的结果:

SELECT
  TRUNC(timestamp, 'Hour') AS hour_interval,
  ROUND(AVG(temp), 2) AS avg_temperature
FROM SensorData
GROUP BY hour_interval
ORDER BY hour_interval;

语句逐部分解释

  • TRUNC(timestamp, 'Hour'): 这个函数会把每个时间戳截断到对应的小时起始点,比如2025-08-22T01:05:00Z会被转换成2025-08-22 01:00:00,刚好对应你要的1小时分组的时间标识。
  • ROUND(AVG(temp), 2): 计算每组的温度平均值后,用ROUND保留两位小数,和你预期的结果格式完全匹配。
  • GROUP BY hour_interval: 按截断后的小时时间分组,把同一小时内的所有传感器数据归为一组。
  • ORDER BY hour_interval: 按时间顺序排序结果,让输出更直观。

验证结果

用你提供的样本数据执行这条SQL,得到的结果完全符合预期:

hour_intervalavg_temperature
2025-08-22 01:00:0021.17
2025-08-22 03:00:0021.80
2025-08-22 05:00:0022.10

额外小提示

如果之后需要调整分组粒度(比如按30分钟、天、周聚合),只需要把TRUNC函数的第二个参数改成对应的粒度即可,比如'Day'(按天分组)、'Minute'(按分钟分组,若要30分钟粒度可以结合整数除法调整)。另外要确保你的timestamp字段是TIMESTAMP类型,这样TRUNC函数才能正常工作。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 09:43:03