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

TDengine 时序函数 DIFF 用户手册

在这里插入图片描述

DIFF 函数用户手册

函数概述

DIFF 函数用于计算数据列中相邻两行数据的差值,通常用于分析数据的变化趋势和增量。该函数特别适用于监控智能电表数据的变化模式。

语法

SELECT DIFF(column_name [, ignore_negative]) FROM table_name;

参数说明

  • column_name: 数值型列名,支持整数和浮点数类型
  • ignore_negative: 可选参数,整数类型
    • 0 或省略:保留负数结果
    • 1:忽略负数结果,负数结果显示为 NULL

返回值类型

  • 输入为整数类型:返回 BIGINT
  • 输入为浮点数类型:返回 DOUBLE

智能电表场景应用示例

基于智能电表数据库结构:

-- 数据库和表结构
USE test;
-- meters 超级表包含 ts, current, voltage, phase 字段和 location, groupid 标签

基础用法示例

电流变化监控
-- 计算电流的变化量
SELECT ts, current, DIFF(current) as current_diff 
FROM meters 
WHERE tbname = 'd1001' 
ORDER BY ts;-- 计算电压的变化量
SELECT ts, voltage, DIFF(voltage) as voltage_diff 
FROM meters 
WHERE tbname = 'd1001' 
ORDER BY ts;-- 计算相位的变化量
SELECT ts, phase, DIFF(phase) as phase_diff 
FROM meters 
WHERE tbname = 'd1001' 
ORDER BY ts;
忽略负数差值
-- 只关注电流增长的情况
SELECT ts, current, DIFF(current, 1) as current_growth 
FROM meters 
WHERE tbname = 'd1001' 
ORDER BY ts;-- 只关注电压上升的情况
SELECT ts, voltage, DIFF(voltage, 1) as voltage_rise 
FROM meters 
WHERE tbname = 'd1001' 
ORDER BY ts;

用电量增量分析

累计用电量变化
-- 分析累计电流的变化(模拟累计用电量)
SELECT ts, current, DIFF(current) as power_increment 
FROM meters 
WHERE location = 'California.LosAngles' AND tbname = 'd1001'
ORDER BY ts;
按时间段分析用电增量
-- 分析最近一小时的用电增量
SELECT ts, current, DIFF(current) as hourly_increment 
FROM meters 
WHERE tbname = 'd1001' AND ts >= NOW() - 1h
ORDER BY ts;-- 分析今日的用电增量
SELECT ts, current, DIFF(current) as daily_increment 
FROM meters 
WHERE tbname = 'd1001' AND ts >= TODAY()
ORDER BY ts;

电网负载变化监控

实时负载变化
-- 监控实时负载变化
SELECT ts, current, DIFF(current) as load_change 
FROM meters 
WHERE location = 'California.SanFrancisco'AND tbname = 'd1002'
ORDER BY ts DESC 
LIMIT 100;
异常负载检测
-- 检测电流突变(变化超过5A)
SELECT ts, current, DIFF(current) as current_change 
FROM meters 
WHERE tbname = 'd1001'AND ABS(DIFF(current)) > 5
ORDER BY ts;

电压质量监控

电压波动分析
-- 分析电压波动情况
SELECT ts, voltage, DIFF(voltage) as voltage_fluctuation 
FROM meters 
WHERE location = 'California.Cupertino'AND tbname = 'd1003'
ORDER BY ts;

相位角变化监控

相位漂移检测
-- 监控相位漂移
SELECT ts, phase, DIFF(phase) as phase_drift 
FROM meters 
WHERE location = 'California.MountainView'AND tbname = 'd1004'
ORDER BY ts;
相位稳定性分析
-- 分析相位稳定性(忽略负变化)
SELECT ts, phase, DIFF(phase, 1) as phase_improvement 
FROM meters 
WHERE tbname = 'd1004'
ORDER BY ts;

多设备对比分析

按设备分组计算差值
-- 按设备分组计算各自的电流变化
SELECT tbname, ts, current, DIFF(current) as current_change 
FROM meters 
WHERE location = 'California.SanJose'
PARTITION BY tbname 
ORDER BY tbname, ts;
设备性能对比
-- 对比不同设备的电压变化模式
SELECT tbname, ts, voltage, DIFF(voltage) as voltage_change 
FROM meters 
WHERE location = 'California.Sunnyvale'
PARTITION BY tbname 
ORDER BY tbname, ts;

能效分析应用

设备效率变化
-- 分析设备效率变化(电流与电压的关系变化)
SELECT ts, current, voltage, DIFF(current) as current_change,DIFF(voltage) as voltage_change
FROM meters 
WHERE tbname = 'd1001'
ORDER BY ts;

重要限制和注意事项

  1. 函数限制

    • TDengine 不支持函数嵌套:DIFF(ABS(current))
    • 不支持在 WHERE 中直接使用:WHERE DIFF(current) > 10
  2. 数据要求

    • 第一行数据的 DIFF 值为 NULL(没有前一行数据)
    • 输入列必须是数值型
    • 按时间戳顺序计算差值
  3. 结果特点

    • 返回行数 = 输入行数(第一行为 NULL)
    • NULL 值参与计算时结果为 NULL
    • 支持分区计算,各分区独立计算差值

关于 TDengine

TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。


文章转载自:

http://QKiMuBL7.zdqsc.cn
http://zcnSzesU.zdqsc.cn
http://v5t8c3lT.zdqsc.cn
http://0ZHDKy3v.zdqsc.cn
http://Ga2doSb6.zdqsc.cn
http://UzNJZkjz.zdqsc.cn
http://4vmjDoN7.zdqsc.cn
http://kVfYSLnH.zdqsc.cn
http://3i5D7MFk.zdqsc.cn
http://TxZHOseO.zdqsc.cn
http://JD97uHci.zdqsc.cn
http://Cv5HvwqC.zdqsc.cn
http://5N1hELjj.zdqsc.cn
http://QhtEj8qa.zdqsc.cn
http://C3qaS9r5.zdqsc.cn
http://qUEJPjus.zdqsc.cn
http://ATqropWm.zdqsc.cn
http://1U9frdTd.zdqsc.cn
http://C7eXfqoA.zdqsc.cn
http://Ukg1sRHh.zdqsc.cn
http://ksN5da0K.zdqsc.cn
http://JZzbx11v.zdqsc.cn
http://23VhQ2h3.zdqsc.cn
http://A3h0WIKt.zdqsc.cn
http://NvXsBpYQ.zdqsc.cn
http://BuRPb5Zu.zdqsc.cn
http://Sfg7fNlU.zdqsc.cn
http://bIfSRwPS.zdqsc.cn
http://GgJJmDcy.zdqsc.cn
http://i7Woei3f.zdqsc.cn
http://www.dtcms.com/a/386511.html

相关文章:

  • 60.[前端开发-Vue3]Day02-模板语法-列表渲染-OptionsAPI-侦听器
  • UML_类图
  • 八串口服务器-工业物联网解决方案
  • 烟花爆竹储存防火防爆知识,《烟花爆竹储存作业证》考试重点
  • Linux网络:守护进程
  • 用C语言求数组Sn的前5项
  • 物联网传感器检测实验
  • GTA式送货!新游《Deliver At All Costs》上线steam
  • 亚马逊新品优化全攻略:从冷启动到高转化的系统化路径
  • 基于属性描述转移的高压断路器零样本智能诊断模型
  • C2(Command Control)命令与控制
  • Tessent_ijtag_ug——第 5 章IJTAG 网络插入 (2)
  • Kaggle铜牌攻略:从泰坦尼克到房价预测,数据科学竞赛完整流程解析
  • 结合图像-文本信息与特征解纠缠的多标签广义零样本胸部X射线分类|文献速递-最新医学人工智能文献
  • JavaScript数组some()和every()方法
  • 全球炭黑复合导电浆料市场报告:原材料波动与技术创新的双重博弈
  • 自动为wordpress外贸网站设置一个标题图
  • 【大模型记忆-Mem0详解-6】核心组件-图形记忆
  • Ansys Zemax | 如何使用极探测器和 IESNA / EULUMDAT 光源数据
  • 【记录】初赛复习 Day2 Day3(内附2024S第一轮难题详解)
  • 洛谷 闰年求和 简单模板题
  • 【Sa-Token 中 三种Session会话 模型详解】
  • MacOS M1安装face_recognition
  • 鸿蒙应用冷启动优化:本地 KV 缓存预热实战指南
  • glib2-2.62.5-7.ky10.x86_64.rpm怎么安装?Kylin Linux RPM包安装详细步骤
  • 少儿舞蹈小程序(16)购物车功能开发
  • 【Node】Windows安装node多版本管理工具nvm
  • JAVA上门家政维修服务系统源码微信小程序+微信公众号+APP+H5
  • Linux学习笔记(五)--Linux基础开发工具使用
  • pyspark自定义udf函数