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

如何用单条SQL语句获取TDengine中10000张子表的最新数据?

用单条SQL获取TDengine超级表下所有子表的最新数据

当然可以用单条SQL实现,利用TDengine的聚合函数和分组特性就能高效完成这个需求。

直接使用LAST()函数配合GROUP BY tbname,按子表分组后取每个子表的最新一条记录:

SELECT tbname, LAST(ts), LAST(temp), LAST(humidity) FROM sdata GROUP BY tbname;
  • 把ts替换成你表中实际的时间戳列名
  • temp、humidity替换成传感器对应的数值列,需要获取哪些字段就写哪些
  • GROUP BY tbname会将超级表的数据按子表拆分,LAST()函数提取每个子表的最后(最新)一条记录

如果你的超级表给每个子表绑定了专属标签(比如device_id),也可以按标签分组,可读性更好:

SELECT device_id, LAST(ts), LAST(temp), LAST(humidity) FROM sdata GROUP BY device_id;

这种方式只需要一次请求就能拿到所有10000个测点的最新数据,比逐个查询子表的性能提升非常明显,完全适配服务初始化的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:25:29