TDengine DML SELECT — 完整查询语法参考

发布时间:2026/7/16 2:49:37

TDengine DML SELECT — 完整查询语法参考
分类10.SQL 参考 |篇章02 DML SELECT适用版本TDengine v3.xv3.3.x / v3.4.x | 最后更新2026-07-15SELECT 是 TDengine 中最常用的语句。本文按子句顺序系统讲解 SELECT 完整语法、特殊子句PARTITION BY、INTERVAL、SLIDING、FILL、以及子查询/集合操作。核心概念速查表子句作用SELECT投影列FROM数据源WHERE行过滤PARTITION BY分区窗口INTERVAL/SESSION/STATE/EVENT/COUNTSLIDING滑动步长FILL填充空窗口GROUP BY分组HAVING分组过滤ORDER BY排序LIMIT/OFFSET限制详细解析1. 完整语法SELECT[DISTINCT]select_listFROM{ table_reference|(subquery)}[WHEREconditions][PARTITIONBYcolumns][WINDOW window_clause][SLIDING(duration)][FILL(fill_mode[,...])][GROUPBYcolumns][HAVINGconditions][ORDERBYcolumns][LIMITcount[OFFSEToffset]][SLIMIT count[SOFFSEToffset]];window_clause ::INTERVAL(duration[,offset])|SESSION(ts_column,gap)|STATE_WINDOW(state_column)|EVENT_WINDOWSTARTWITHexprENDWITHexpr|COUNT_WINDOW(count[,sliding_count])2. select_list-- 列选择SELECTts,currentFROMmeters;-- 所有列SELECT*FROMmeters;-- 表达式SELECTts,current*voltageASpowerFROMmeters;-- 别名SELECTcurrentASampFROMmeters;-- 聚合函数SELECTAVG(current),MAX(current)FROMmeters;-- 时间窗口元数据SELECT_wstart,_wend,_wduration,AVG(current)FROMmetersINTERVAL(1h);-- 子表名/TagSELECTtbname,location,AVG(current)FROMmetersGROUPBYtbname,location;-- CASE WHENSELECTts,CASEWHENcurrent100THENHIGHWHENcurrent50THENMIDELSELOWENDASlevelFROMmeters;3. FROM 子句-- 单表SELECT*FROMd001;-- 超级表自动跨子表SELECT*FROMmeters;-- 多表JOINSELECT*FROMt1JOINt2ONt1.tst2.ts;-- 子查询SELECTMAX(avg_c)FROM(SELECTAVG(current)ASavg_cFROMmetersPARTITIONBYtbnameINTERVAL(1h))sub;-- VIEW视图SELECT*FROMv_meters;-- 系统表SELECT*FROMinformation_schema.ins_databases;4. WHERE 子句-- 基本比较WHEREcurrent100WHEREts2026-06-01WHERElocationBeijing-- 范围WHEREtsBETWEEN2026-06-01AND2026-06-30WHEREcurrentBETWEEN50AND100-- 集合WHERElocationIN(Beijing,Shanghai)WHEREtbnameLIKEd0%-- 模糊WHEREdescriptionLIKE%error%WHEREdescriptionMATCHregex-- 复合WHERE(locationBeijingORlocationShanghai)ANDtsnow-1h-- NULLWHEREcurrentISNULLWHEREphaseISNOTNULL-- 时间表达式WHEREtsnow-1hWHEREtstoday()-1d5. PARTITION BY-- 按子表分组聚合SELECTtbname,AVG(current)FROMmetersPARTITIONBYtbname;-- 多列分区SELECTlocation,groupid,MAX(current)FROMmetersPARTITIONBYlocation,groupid;-- PARTITION BY 窗口最常见SELECTtbname,_wstart,AVG(current)FROMmetersPARTITIONBYtbnameINTERVAL(1h);6. 窗口子句-- INTERVALINTERVAL(1h)INTERVAL(1h,30m)-- 偏移INTERVAL(1h)SLIDING(30m)-- 滑动-- SESSIONSESSION(ts,30m)-- STATESTATE_WINDOW(status)-- EVENTEVENT_WINDOWSTARTWITHt80ENDWITHt60-- COUNTCOUNT_WINDOW(100)COUNT_WINDOW(100,50)-- 滑动-- FILLINTERVAL(1h)FILL(NULL)INTERVAL(1h)FILL(VALUE,0)INTERVAL(1h)FILL(PREV)INTERVAL(1h)FILL(NEXT)INTERVAL(1h)FILL(LINEAR)INTERVAL(1h)FILL(NONE)7. ORDER BY / LIMIT-- 排序ORDERBYts-- 升序默认ORDERBYtsDESC-- 降序ORDERBYcurrentDESC,ts-- 多列-- 限制LIMIT10LIMIT10OFFSET100-- 子表级 LIMIT (PARTITION 内)SELECT*FROMmetersPARTITIONBYtbnameLIMIT1SLIMIT10;-- SLIMIT: 限制 partition 数量-- LIMIT: 每个 partition 的行数8. 集合操作-- UNION ALL (TDengine 主要支持)SELECTts,currentFROMmeters_2025UNIONALLSELECTts,currentFROMmeters_2026;-- UNION去重视版本支持代码示例综合查询示例-- 复杂业务查询SELECTtbname,_wstartAShour_start,AVG(current)ASavg_c,MAX(current)ASmax_c,MIN(current)ASmin_c,COUNT(*)ASsample_cntFROMmetersWHEREts2026-06-01ANDts2026-07-01ANDlocationIN(Beijing,Shanghai)PARTITIONBYtbnameINTERVAL(1h)FILL(LINEAR)HAVINGavg_c20ORDERBYhour_startDESC,max_cDESCLIMIT100;子查询应用-- 找出 TOP 10 平均电流的设备SELECTtbname,avg_cFROM(SELECTtbname,AVG(current)ASavg_cFROMmetersWHEREtsnow-1dPARTITIONBYtbname)subORDERBYavg_cDESCLIMIT10;-- 与历史均值比较SELECTm.ts,m.current,h.avg_cFROMmeters mJOIN(SELECTtbname,AVG(current)ASavg_cFROMmetersWHEREtsnow-1dPARTITIONBYtbname)hONm.tbnameh.tbnameANDm.tsm.ts;系统表查询-- 数据库列表SELECTname,vgroups,replicaFROMinformation_schema.ins_databases;-- 表数量SELECTCOUNT(*)FROMinformation_schema.ins_tablesWHEREdb_namepower;-- 正在执行的查询SELECT*FROMperformance_schema.perf_queriesORDERBYexec_usecDESC;性能考量子句执行顺序逻辑执行顺序与书写顺序不同 1. FROM (定位表) 2. WHERE (行过滤) 3. PARTITION BY (分区) 4. WINDOW (窗口划分) 5. GROUP BY (分组) 6. HAVING (分组后过滤) 7. SELECT (投影) 8. DISTINCT (去重) 9. ORDER BY (排序) 10. LIMIT (限制)性能要点项影响WHERE 含时间决定扫描量WHERE 含 Tag子表筛选PARTITION BY 基数内存与并发排序非 ts 列需实际排序LIMIT 含早停大幅加速FAQQ1: PARTITION BY 和 GROUP BY 有什么区别PARTITION BY分区后保留各分区独立窗口/计算GROUP BY聚合为每组一行通常时序数据用 PARTITION BY 配合窗口Q2: 子查询有什么限制支持单层子查询。多层嵌套和复杂关联子查询支持有限。Q3: SELECT * 和列举列有区别吗列举列列裁剪生效I/O 更少。SELECT * 在大表上低效。Q4: 系统表怎么用SHOWDATABASES;-- 简洁SELECT*FROMinformation_schema.ins_databases;-- 详细Q5: 怎么测试 SQL 性能EXPLAINSELECT...;EXPLAINANALYZESELECT...;参考系统构架篇01-《TDengine 整体架构全景》02-《集群拓扑深度解析》03-《MNode 内部机制深度解析》04-《RPC 通信层深度解析》05-《VNode 生命周期》06-《RAFT 共识协议》07-《端到端的消息流》数据模型01-《数据库创建与参数详解》02-《超级表/子表/普通表》03-《支持数据类型深度解析》04-《TDengine Tag 设计哲学与 Schema 变更机制》05-《TDengine 虚拟表实现原理》存储引擎01-《TDengine 存储引擎概览》02-《TDengine MemTable 深度解析》03-《TDengine WAL 预写日志机制》04-《TDengine 数据文件格式》05-《TDengine Commit 与 Flush 机制 》06-《TDengine Compaction 合并策略 》07-《TDengine 数据保留与 TTL》08-《TDengine 压缩编码机制》09-《TDengine Cache 与 Last 查询加速》10-《TDengine 逻辑计划生成》查询引擎01-《TDengine 查询引擎概览》02-《TDengine SQL 解析与词法分析》03-《TDengine 语义分析与 AST 重写》04-《TDengine 逻辑计划生成》05-《TDengine 物理计划生成》06-《TDengine 扫描算子》07-《TDengine 聚合算子》08-《TDengine 聚合算子》09-《TDengine 连接算子》10-《TDengine 排序、填充与投影》11-《TDengine 分布式查询执行》12-《TDengine EXPLAIN 与查询优化》数据写入01-《TDengine SQL INSERT》02-《TDengine 无模式写入》03-《TDengine STMT 写入》04-《TDengine 写入内部流程》05-《TDengine 数据更新删除》数据订阅01-《TDengine 数据订阅》02-《TDengine 订阅 vs Kafka》03-《TDengine TMQ 消费流程》04-《TDengine 内部机制》05-《TDengine TMQ 最佳实践》预聚合01-《TDengine RSMA》02-《TDengine TSMA — 时间维度的物化聚合视图》03-《TDengine SMA 内部实现》索引01-《TDengine Tag 索引》02-《TDengine SMA 索引》SQL 语句01-《TDengine DDL》关于 TDengineTDengine 专为物联网IoT平台、工业大数据平台设计。其中TDengine TSDB 是一款高性能、分布式的时序数据库Time Series Database同时它还带有内建的缓存、流式计算、数据订阅等系统功能TDengine IDMP 是一款AI原生工业数据管理平台它通过树状层次结构建立数据目录对数据进行标准化、情景化并通过 AI 提供实时分析、可视化、事件管理与报警等功能。

相关新闻

LangChain SmithDB:为AI Agent打造轻量级可观测性数据库

LangChain SmithDB:为AI Agent打造轻量级可观测性数据库

2026/7/16 2:49:37

1. 这不是“造轮子”,是给AI Agent装上“黑匣子”和“行车记录仪”LangChain “不务正业”,居然从零造了个数据库?——这个标题乍看像调侃,实则精准戳中了当前Agent开发最痛的盲区:我们天天调用agent.invoke()&#xf…

工程签证、进度款、结算审核,这些要点一定要掌握!

工程签证、进度款、结算审核,这些要点一定要掌握!

2026/7/16 2:49:37

工程签证、进度款、结算审核,这些要点一定要掌握! 一、工程签证 1几种应不予签证的现象(经常出现而又容易忽略) (1)工程签证的内容应尽量保证详细,包括签证的原因(含引用资料的编号)、位置、尺寸、数量、日期、所用材料、结算方式、结算单价等等,签证单后必须附造成…

BLDC电机原理、控制与应用实战解析

BLDC电机原理、控制与应用实战解析

2026/7/16 2:49:37

1. BLDC电机的基本概念与工作原理第一次拆解无刷电机时,我被它精巧的结构震撼到了——没有传统电机中碳刷与换向器的摩擦接触,却能实现更高效的运转。这种被称为BLDC(Brushless DC Motor)的电机,正在从无人机螺旋桨到家…

点狮 OA 全业务管理平台落地应用指南

点狮 OA 全业务管理平台落地应用指南

2026/7/16 4:09:41

很多中小企业的管理者都有这样的体会:公司刚起步时,大家靠吼一声、发个微信就能把事办了,效率反而挺高。可一旦团队扩张到几十人甚至上百人,原本灵活的沟通机制瞬间变成了一团乱麻。审批流程还在靠纸质单据或零散的聊天记录流转&a…

C++野指针的3个致命陷阱与系统性防御策略

C++野指针的3个致命陷阱与系统性防御策略

2026/7/16 4:09:41

1. 项目概述:为什么野指针是C程序员的“隐形杀手”?干了十几年C,从桌面应用到后台服务,再到嵌入式系统,我踩过最深的坑,往往不是那些复杂的算法或者高并发的架构,而是一些看似基础、实则暗藏杀机…

WPS 怎么做课程对比表?儋州零基础先分清 AI 办公、Excel 和电商工具

WPS 怎么做课程对比表?儋州零基础先分清 AI 办公、Excel 和电商工具

2026/7/16 4:09:41

一、为什么这个场景适合零基础练习 课程方向对比表 是一个具体任务,不需要一开始就掌握复杂函数或专业软件。它能练到资料整理、字段设计、AI 辅助表达和人工核对,这些都是 CSDN 更容易接受的数字技能内容。 比起泛泛地说“我要学技能”,先做…

AF Monitor Tuning: 从数值监控库到精准场景决策

AF Monitor Tuning: 从数值监控库到精准场景决策

2026/7/16 4:09:41

1. AF监控算法的核心价值与应用场景想象一下你正在拍摄一场足球比赛,镜头需要在球员奔跑、观众欢呼和广告牌闪烁间快速切换。传统对焦系统可能会在这些复杂场景中反复"拉风箱",而现代AF监控算法正是为了解决这类痛点而生。AF监控的核心使命可以…

人心太复杂,不如学技术纯粹

人心太复杂,不如学技术纯粹

2026/7/16 4:09:41

时间:2025-8 – 至今一、个人感悟:相比人心,学习是最简单的事情;二、主题:人心太复杂,还是技术纯粹;三、引言:您好,陌生人:欢迎走进我的第一人生!…

OtterWiki+华为开发者空间:轻量知识库云上部署实战

OtterWiki+华为开发者空间:轻量知识库云上部署实战

2026/7/16 3:59:40

1. 为什么是 OtterWiki 华为开发者空间?——轻量知识库的“云上最小可行系统”我第一次在团队内部推动知识沉淀时,踩过太多坑:用 Confluence,光装 Java 环境和调 JVM 参数就耗掉两天;搭 WikiMedia,PHP 扩展…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/16 0:35:09

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/13 20:43:19

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/15 0:26:43

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Python实现跨境电商商品图批量翻译教程

Python实现跨境电商商品图批量翻译教程

2026/7/16 0:09:31

一、问题引入做跨境电商的卖家朋友,你是否遇到过这样的困扰?每次上架新品到亚马逊、Shopee或Lazada等平台,都需要处理大量商品图片的多语言版本。比如上架200款衣服,每款需要翻译成英语、日语、韩语等5种语言,这意味着…

跨境电商多语言商品图翻译方案实现

跨境电商多语言商品图翻译方案实现

2026/7/16 0:09:31

一、问题引入对于做跨境电商的卖家来说,多语言商品图的制作一直是令人头疼的环节。当你准备在亚马逊、Shopee、Lazada等多个平台同步上架新品时,首先遇到的就是图片翻译问题。以一位做家居用品的卖家为例,他需要将200张商品图片中的英文文案全…

Windows系统文件d3dx9_36.dll丢失找不到问题解决

Windows系统文件d3dx9_36.dll丢失找不到问题解决

2026/7/16 0:09:31

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…