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

如何在TDengine下采样时获取最值对应的时间戳?

如何在TDengine下采样时获取最值对应的时间戳

你可以通过TDengine的max_by()和min_by()聚合函数直接实现需求,这两个函数能在每个时间窗口内返回指定字段取最值时对应的另一个字段值(这里就是时间戳)。

修改后的SQL语句如下:

select 
    _wstart,
    max(val) as max_val,
    max_by(ts, val) as max_val_ts,
    min(val) as min_val,
    min_by(ts, val) as min_val_ts
from d1001
interval(5s);

说明

  • max_by(ts, val):返回当前时间窗口内val取最大值时对应的ts时间戳
  • min_by(ts, val):返回当前时间窗口内val取最小值时对应的ts时间戳

如果你的TDengine版本不支持max_by/min_by函数,可以改用窗口函数加分组的方式实现:

select 
    _wstart,
    max_val,
    max(ts) filter(where val = max_val) as max_val_ts,
    min_val,
    min(ts) filter(where val = min_val) as min_val_ts
from (
    select 
        _wstart,
        ts,
        val,
        max(val) over(partition by _wstart) as max_val,
        min(val) over(partition by _wstart) as min_val
    from d1001
    interval(5s)
) t
group by _wstart, max_val, min_val;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:35:20