当前位置: 首页 > news >正文

TDengine 时序函数 TWA 用户手册

在这里插入图片描述

TWA 函数用户手册

1. 函数概述

TWA(expr)

功能说明:时间加权平均函数。统计表中某列在一段时间内的时间加权平均。对于存在复合主键的表的查询,若时间戳相同的数据存在多条,则只有对应的复合主键最小的数据参与运算。

返回数据类型:DOUBLE。

适用数据类型:数值类型。

适用于:表和超级表。

2. 函数意义及应用范围

  • 意义
    对时序数据按每个采样点到下一个采样点的时间间隔赋予权重,平滑瞬时跳变和不等距采样带来的偏差,更真实地反映指标在整个窗口内的「平均水平」。

  • 应用场景

    • 智能电表:电压/电流/功率滚动趋势分析
    • 能耗评估:按小时/天统计加权平均功率,指导计费与节能
    • 供电稳定性监测:对频率、相位做滚动平均,过滤噪声
    • 负荷预测与报警:基于历史窗口的加权平均判断突发波动或持续异常

3. 参数说明

  • expr
    • 必需
    • 数值类型列或表达式

4. 返回值类型

  • DOUBLE

5. 使用说明

  • 必须保证源数据按时间戳 (ts) 升序
  • 只能在 SELECT 列表中出现一次
  • 不能在 WHERE 直接使用 TWA 进行过滤(请用子查询)
  • 对超级表查询需加 PARTITION BY 分区

6. 加权平均简介

6.1 专业公式

加权平均的通用公式:

加权平均 = (Σ w_i × x_i) / (Σ w_i)

对于 TWA,权重 w_i 为当前点到下一个点的时间间隔 Δt_i,计算时对窗口内所有 Δt_i × 对应值求和,再除以窗口总时长 ΣΔt_i。

6.2 通俗描述

想象你在两个坡道上滚动小球:

  • 坡道 A 持续时间长,但速度较慢
  • 坡道 B 持续时间短,但速度较快
    如果简单平均 A、B 两个速度,会低估 B 的影响;而时间加权平均则按每段持续时间加权,还原小球在整体旅程中的真实平均速度。

同理,TWA 把每个采样值放大到它在窗口内“存在”的时间长度,再算平均——这样短暂的峰值或空档对最终结果影响更小,更贴合参数在该时间段的真实变化。

7. 计算过程与返回值说明

示例数据(每 15 分钟采样一次):

tsvoltage
10:00:00230.0
10:15:00240.0
10:30:00250.0
10:45:00245.0
11:00:00235.0
  • 对 11:00:00 行执行 TWA(voltage)(窗口为整个查询区间或当前 GROUP BY TIME 窗口):
    1. 取窗口 [10:00,11:00] 内所有点
    2. 计算各段 value × Δt 并累加:
      • 10:00–10:15 → 230 × 15
      • 10:15–10:30 → 240 × 15
      • 10:30–10:45 → 250 × 15
      • 10:45–11:00 → 245 × 15
    3. 除以总时长 60 → (230+240+250+245)×15 / 60 = 241.25
SELECTTWA(voltage)
FROM d1;
tsvoltagevoltage_twa_1h
10:00:00230.0230.00
10:15:00240.0235.00
10:30:00250.0240.00
10:45:00245.0241.25
11:00:00235.0241.25

8. 使用示例

-- 1)单区间加权平均
SELECT TWA(voltage) AS twa_valFROM d1-- 2)与 GROUP BY 
SELECT tbname, TWA(voltage) AS voltage_twa_1h 
FROM meters 
GROUP BY tbname;--3) 超级表分区
SELECT tbname,TWA(voltage) FROM meters PARTITION BY tbname;--4) UNION ALL
SELECT TWA(voltage) FROM d1 
UNION ALL
SELECT TWA(voltage) FROM d2--5) JOIN 多表 d1 d2 为超级表 meters 下两子表
SELECTTWA(d1.voltage),TWA(d2.voltage)
FROM d1 
JOIN d2 ON d1.ts = d2.ts;--6) 混合函数
SELECT tbname,MAX(voltage),TWA(voltage)  
FROM meters 
PARTITION BY tbname;

关于 TDengine

TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,其核心模块是高性能、集群开源、云原生、极简的时序数据库。

它能安全高效地将大量设备每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,并提供 AI 智能体对数据进行预测与异常检测,提供实时的商业洞察。

http://www.dtcms.com/a/431140.html

相关文章:

  • 从“人治”到“数治”:信用报告在现代化社会治理中的角色与演变
  • (基于江协科技)51单片机入门:8.DS1302
  • 01.如何使用 JavaScript 创建游戏 | 图片拼图
  • 【2025年Q3】AI生产力再探再报:社恐专用写作、动嘴剪视频、AI点外卖?这波AI工具太野了!
  • 安溪网站建设上海营销型网站建设费用
  • Redis线上操作最佳实践有哪些?
  • Springboot调用Ollama本地大模式
  • 珠海图远建设公司网站网站制作课程介绍
  • 【unity实战】实现TPS第三人称射击游戏武器灵动、自然的瞄准效果(IK | Animation Rigging | TPS)
  • Python基础(②⑤Mycat读写分离)
  • 接口自动化测试 - pytest [1]
  • 销售平台网站建设wordpress推广模板
  • C++ 异常处理全解析:从语法到设计哲学
  • 面向开发人员的macOS入门教程
  • 用自己电脑做服务器建网站apache创建WordPress
  • InfiniBand 深度解析
  • springboot websocket 原理
  • UniVTG: Towards Unified Video-Language Temporal Grounding
  • html做网站头部dw网页
  • 一键获取Node.js进程信息:实用工具函数分享
  • ML4T - 第7章第7节 逻辑回归拟合宏观数据Logistic Regression with Macro Data
  • 宿州学校网站建设东营城乡建设局官网
  • 从通用人工智能(AGI)到超级智能(ASI):演化、挑战与启示
  • CycloneDX:全栈软件供应链安全标准解读及优势分析
  • Python 线程同步原语大全:Lock、RLock、Semaphore、Condition、Event实战
  • 青岛网站建设在哪温州高端网站定制
  • keil5添加其他芯片包pack文件的方式
  • 短剧小程序跨端适配实战:UniApp / 原生开发选型与多终端体验一致性保障
  • 第四周作业(包括小组网页设计-对Bootstrap的初步了解)
  • 算法时空博弈:效率与资源的交响诗篇