如何统计一个小时数据,没有分钟数据损失?

【TDengine 使用环境】
生产环境

【TDengine 版本】

【操作系统以及版本】

【部署方式】容器/非容器部署

【遇到的问题:问题现象及影响】


如果不使用代码取值计算,还有没有其他的方法?

如果将11:00:48 这条记录放到10点窗口去计算,也同样会出现偏差的吧?

这种场景我是用代码取的上一个周期的last 和本周期last 然后相减 每个周期都这么算 这样就不会丢数了

这种方法也有偏差吧?比如上个周期的last 是 10:59:50, 本个周期的last 是 11:59:55.
这两个相减,结果里是不是
多计算了 10:59:50 ~ 11:00:00 这个时间段,
少计算了: 11:59:55 ~ 12:00:00 这个时间段.

是的 但是至少不会丢数 无非是这个月多一点 下个月少一点 我觉得可以接受 :smiley:

那可以这样:使用每个小时窗口的 最后的值 - 上个小时窗口的最后的值,采用一个嵌套实现:

SELECT _wend AS hour_end,
       last_val,
       DIFF(last_val) AS hourly_delta
FROM (
  SELECT _wend, LAST(val) AS last_val
  FROM meters
  WHERE ts >= '2026-09-17 00:00:00' AND ts < '2026-09-18 00:00:00'
  INTERVAL(1h)
);