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

如何使用GridDB计算指定时间间隔内数据字段的平均值?

按时间间隔计算字段平均值的解决方案

你需要通过分组聚合实现按小时统计指定字段的平均值,核心是用GROUP BY结合时间截断函数,将数据按小时维度分组后计算均值。

正确的TQL查询语句

针对你的需求(统计2022-12-27 00:00:00Z到2022-12-28 00:00:00Z之间每小时的data字段平均值),可以使用以下查询:

tql lctime 
SELECT DATE_TRUNC('hour', timestamp) AS hour_start, AVG(data) AS avg_data 
WHERE timestamp >= TIMESTAMP('2022-12-27T00:00:00Z') 
  AND timestamp < TIMESTAMP('2022-12-28T00:00:00Z') 
GROUP BY DATE_TRUNC('hour', timestamp) 
ORDER BY hour_start;

执行后用get命令获取结果,就能得到每小时的起始时间和对应data字段的平均值。

语句说明

  • DATE_TRUNC('hour', timestamp):将timestamp字段截断到小时级别,作为分组依据,确保同一小时内的数据被归为一组。
  • AVG(data):计算每个分组内data字段的平均值。
  • GROUP BY DATE_TRUNC('hour', timestamp):按截断后的小时时间分组。
  • ORDER BY hour_start:按时间顺序排序结果,方便查看。

你之前的尝试问题说明

你之前的查询要么是获取全量数据,要么是计算整个时间范围的总和,没有按小时进行分组,所以无法得到每个时间间隔的平均值。


原始操作记录

gs[public]> tql lctime select * where timestamp < TIMESTAMPADD(HOUR, TIMESTAMP('2022-12-28T00:00:00Z'), -1) and timestamp > TIMESTAMPADD(HOUR, TIMESTAMP('2022-12-27T00:00:00Z'), -1)
362 results. (0 ms)
gs[public]> get 10
timestamp,data,temperature
2022-12-27T02:08:08.055Z,359.0,359.0
2022-12-27T02:34:00.105Z,359.0,359.0
2022-12-27T02:34:56.511Z,0.0,0.0
2022-12-27T02:35:56.511Z,1.0,1.0
2022-12-27T02:36:56.511Z,2.0,2.0
2022-12-27T02:37:56.511Z,3.0,3.0
2022-12-27T02:38:56.511Z,4.0,4.0
2022-12-27T02:39:56.511Z,5.0,5.0
2022-12-27T02:40:56.511Z,6.0,6.0
2022-12-27T02:41:56.511Z,7.0,7.0
The 10 results had been acquired.
gs[public]> tql lctime select sum(data) where timestamp < TIMESTAMPADD(HOUR, TIMESTAMP('2022-12-28T00:00:00Z'), -1) and timestamp > TIMESTAMPADD(HOUR, TIMESTAMP('2022-12-27T00:00:00Z'), -1);
1 results. (0 ms)
gs[public]> get 10
Result
65338.0
The 1 results had been acquired.

内容的提问来源于stack exchange,提问作者Nooruddin Lakhani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:02:46