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

如何在PostgreSQL中正确实现时间序列数据重采样计算小时均值

问题原因

你编写的SQL逻辑错误出在GROUP BY子句使用了原始的datetime字段,而非截断到小时的时间值。这会导致每个原始5分钟粒度的时间点都会单独分组,最终每个小时内仍会返回多条原始聚合结果,和你预期的每小时单条均值不符。

正确SQL实现

将分组和排序的依据都替换为date_trunc处理后的小时时间即可:

SELECT 
    date_trunc('hour', datetime) AS datetime,
    AVG(value) AS value,
    type,
    name
FROM data_table
GROUP BY date_trunc('hour', datetime), type, name
ORDER BY datetime, type, name;

补充说明

如果你的数据存在小时级缺失、需要输出连续的小时时序结果,可以先用generate_series生成完整的连续小时序列,再和上述聚合结果做左连接,按需填充空值即可避免时序断层。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:06:03