在这里插入图片描述

UNIQUE 函数用户手册

函数定义

UNIQUE(expr)

功能说明

UNIQUE() 函数返回指定列去重后的值,功能类似于 SQL 中的 DISTINCT 关键字。对于相同的数据值,UNIQUE 函数会返回时间戳最小的那一条记录。该函数会跳过 NULL 值。

版本要求

  • 最低版本: v3.0.0.0

返回值

  • 数据类型: 与输入参数相同的数据类型
  • 返回内容: 去重后的值集合及其对应的时间戳

参数说明

参数类型说明取值范围
expr表达式要去重的字段表达式所有数据类型

适用数据类型

UNIQUE 函数支持以下数据类型:

  • 所有数据类型: 数值类型、字符串类型、时间戳类型、布尔类型等

适用范围

  • 表类型: 表和超级表
  • 查询支持: 支持选择查询、多行返回
  • 函数特性: 选择函数、多行函数、隐式时间戳函数、主键函数

基本用法示例

单列查询

-- 返回电流的所有不同值
SELECT UNIQUE(current) FROM meters;-- 返回电压的所有不同值
SELECT UNIQUE(voltage) FROM meters;-- 返回相位的所有不同值
SELECT UNIQUE(phase) FROM meters;

带时间戳查询

-- 返回电流不同值及其首次出现的时间戳
SELECT ts,UNIQUE(current) as unique_current_values
FROM meters;

带其他列查询

-- 返回包含标签信息的 UNIQUE 查询
SELECT location,UNIQUE(current) as unique_current,ts
FROM meters;

智能电表场景应用示例

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

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

场景1:全局数据去重分析

-- 查看所有电表记录过的不同电流值
SELECT UNIQUE(current) as current_levels FROM meters;-- 查看所有电表记录过的不同电压值
SELECT UNIQUE(voltage) as voltage_levels FROM meters;-- 查看所有电表记录过的不同相位值
SELECT UNIQUE(phase) as phase_levels FROM meters;

场景2:单个电表数据去重

-- 查看特定电表的不同电流使用模式
SELECT UNIQUE(current) as device_current_patterns,ts as first_occurrence
FROM meters 
WHERE tbname = 'd1001';-- 查看特定电表的不同电压模式
SELECT UNIQUE(voltage) as device_voltage_patterns,ts as first_occurrence
FROM meters 
WHERE tbname = 'd1001';

场景3:区域数据去重分析

-- 查看北京地区电表的不同电流值
SELECT location,UNIQUE(current) as regional_current_patterns,ts as first_occurrence
FROM meters 
WHERE location = 'Beijing';-- 查看上海地区电表的不同电压值
SELECT location,UNIQUE(voltage) as regional_voltage_patterns,ts as first_occurrence
FROM meters 
WHERE location = 'Shanghai';

场景4:时间段内的数据去重

-- 分析最近一周的用电模式变化
SELECT UNIQUE(current) as weekly_current_patterns,ts as pattern_first_seen
FROM meters 
WHERE ts >= NOW() - 7d;-- 分析工作日的用电模式
SELECT UNIQUE(current) as weekday_patterns,ts as pattern_start_time
FROM meters 
WHERE WEEKDAY(ts) BETWEEN 1 AND 5;

场景5:负载档位分析

-- 分析所有电表的负载档位(去重后的电流值)
SELECT UNIQUE(current) as load_levels,ts as level_first_seen
FROM meters 
ORDER BY load_levels;-- 分析高负载时段的电流模式
SELECT UNIQUE(current) as high_load_patterns,ts as high_load_first_time
FROM meters 
WHERE current > 20;

场景6:电力质量标准检测

-- 检测系统中出现过的电压标准
SELECT UNIQUE(voltage) as voltage_standards,ts as standard_first_detected
FROM meters 
ORDER BY voltage_standards;-- 检测异常电压值
SELECT UNIQUE(voltage) as abnormal_voltages,ts as anomaly_first_detected
FROM meters 
WHERE voltage < 200 OR voltage > 250;

场景7:设备特定分析

-- 分析特定设备组的运行特征
SELECT UNIQUE(current) as group_current_patterns,ts as pattern_first_occurrence
FROM meters 
WHERE groupid = 1;-- 分析特定设备的电气特征
SELECT UNIQUE(current) as device_current_signature,UNIQUE(voltage) as device_voltage_signature,ts as signature_timestamp
FROM meters 
WHERE tbname = 'd1001';

场景8:数据质量检查

-- 检查最近记录中的数据完整性
SELECT UNIQUE(current) as recent_current_values,ts as value_first_seen
FROM meters 
WHERE ts >= NOW() - 1h;-- 检查数据的离散程度
SELECT COUNT(UNIQUE(current)) as current_diversity,MAX(ts) as latest_record
FROM meters;

场景9:异常检测数据准备

-- 获取异常电流值用于分析
SELECT UNIQUE(current) as abnormal_current,ts as anomaly_first_time
FROM meters 
WHERE current > 30 OR current < 0;-- 获取系统中的所有相位值
SELECT UNIQUE(phase) as phase_variations,ts as variation_first_detected
FROM meters;

场景10:基准值建立

-- 建立电流基准值库
SELECT UNIQUE(current) as current_baselines,ts as baseline_established
FROM meters 
WHERE ts >= NOW() - 30d;-- 建立电压基准值库
SELECT UNIQUE(voltage) as voltage_baselines,ts as baseline_timestamp
FROM meters 
WHERE voltage BETWEEN 200 AND 240;

场景11:设备运行模式识别

-- 识别设备的不同运行模式(基于电流值)
SELECT UNIQUE(current) as operating_modes,ts as mode_first_detected
FROM meters 
WHERE tbname IN ('d1001', 'd1002', 'd1003');-- 识别低功耗模式
SELECT UNIQUE(current) as low_power_modes,ts as mode_detected_time
FROM meters 
WHERE current < 5;

场景12:历史数据模式分析

-- 分析历史数据中的电流模式
SELECT UNIQUE(current) as historical_patterns,ts as pattern_origin_time
FROM meters 
WHERE ts BETWEEN '2024-01-01 00:00:00' AND '2024-01-31 23:59:59';-- 分析夜间用电模式
SELECT UNIQUE(current) as night_patterns,ts as night_pattern_time
FROM meters 
WHERE HOUR(ts) BETWEEN 22 AND 6;

与传统 DISTINCT 的对比

-- UNIQUE 函数方式(推荐,返回时间戳信息)
SELECT UNIQUE(current) as unique_current,ts
FROM meters 
WHERE tbname = 'd1001';-- 传统 DISTINCT 方式(只返回去重值)
SELECT DISTINCT current 
FROM meters 
WHERE tbname = 'd1001';

注意事项

  1. NULL 值处理: UNIQUE 函数会跳过 NULL 值,不会包含在返回结果中
  2. 时间戳选择: 对于相同的值,返回时间戳最小的那一条记录
  3. 多行返回: UNIQUE 函数会返回多行结果
  4. 必须包含列: 参数必须包含列引用,不能是纯常量表达式
  5. 隐式时间戳: 函数会隐式返回对应的时间戳信息
  6. 不支持分组: UNIQUE 函数不能在 GROUP BY 查询中使用
  7. 不支持窗口: UNIQUE 函数不能在窗口查询中使用
  8. 性能考虑: 在大表上使用时建议配合适当的 WHERE 条件过滤

相关函数

  • MODE(): 返回出现频率最高的值
  • SAMPLE(): 返回随机采样的 k 个值
  • TOP(): 返回最大的 k 个值
  • BOTTOM(): 返回最小的 k 个值
  • FIRST(): 返回最先的非 NULL 值
  • LAST(): 返回最后的非 NULL 值

关于 TDengine

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/923641.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/923641.shtml
英文地址,请注明出处:http://en.pswp.cn/news/923641.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新零售第一阶段传统零售商的困境突破与二次增长路径:基于定制开发开源AI智能名片S2B2C商城小程序的实践探索

摘要&#xff1a;新零售第一阶段&#xff0c;传统零售商面临同质化竞争、用户消费意愿低迷、线上电商分流等核心困境。本文以定制开发开源AI智能名片S2B2C商城小程序为切入点&#xff0c;结合阿里巴巴、某知名连锁零售企业等实践案例&#xff0c;分析其通过“AI智能推荐供应链协…

Spark SQL 之 Join Reorder

参考链接 https://www.cnblogs.com/fxjwind/p/14768975.html join Reorder src/main/scala/org/apache/spark/sql/catalyst/optimizer/CostBasedJoinReorder.scala private def reorder(plan: LogicalPlan, output: Seq[Attribute]): LogicalPlan = {<

牛客周赛 Round 109

比赛链接&#xff1a;牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A-小红的直角三角形_牛客周赛 Round 109 签到题&#xff1a;用勾股定理即可通过此题&#xff08;需要注意对共线情况的判断&#xff09; 代码&#xff1a; // Problem: 小红的直角三角…

[deepseek]LNK2001错误即单独编译汇编并链接

方案一&#xff1a;使用预编译的 .obj 文件&#xff08;最简单&#xff09; 如果汇编代码不常改动&#xff0c;这是最省事的方法。手动编译一次&#xff1a; 打开命令行&#xff0c;切换到 spoof.asm 所在目录。使用你已有的汇编器&#xff08;或者下载一个单独的 MASM 版本&am…

php学习 (第六天)

虚拟主机 一.什么是虚拟主机&#xff1f; 1.1 概念虚拟主机&#xff08;Web Hosting&#xff09;英文&#xff1a;Web Hosting / Shared Hosting核心概念&#xff1a; 一台服务器被切分给多个用户&#xff0c;每个人只使用服务器的一部分资源&#xff08;CPU、内存、带宽、存储…

AcousticsML声学机器学习翻译教程二(特征提取Feature Etraction)

源自&#xff1a;https://github.com/RAMshades/AcousticsM 特征提取 特征是可测量的属性&#xff0c;作为系统的输入。这些输入与特定数据样本相关&#xff0c;机器学习模型可通过解读这些特征来提供预测。特征通常具有独立性&#xff0c;并能提供样本的具体细节。音频特征示例…

【论文阅读】Beyond Text: Frozen Large Language Models in Visual Signal Comprehension

本论文研究了能否利用一个“冻结”的LLM&#xff0c;直接理解视觉信号&#xff08;即图片&#xff09;&#xff0c;而不用在多模态数据集上进行微调。核心思想是把图片看作一种“语言实体”&#xff0c;把图片转换成一组离散词汇&#xff0c;这些词汇来自LLM自己的词表。为此&a…

The Oxford-IIIT宠物图像识别数据集(753M)

0、引言博主研究生期间做的是人工智能领域相关的深度学习模型研究&#xff0c;早期还没定题的时候调研了大量方向。众所周知&#xff0c;模型性能的好坏很大程度上依赖于数据集&#xff0c;因此我当时也接触了大量数据集&#xff0c;这阵子将这些数据集汇总整理了一下&#xff…

jdbc DAO封装及BaseDAO工具类

DAO概念 DAO&#xff1a;Data Access Object&#xff0c;数据访问对象。 Java是面向对象语言&#xff0c;数据在Java中通常以对象的形式存在。一张表对应一个实体类&#xff0c;一张表的操作对应一个DAO对象&#xff01; 在Java操作数据库时&#xff0c;我们会将对同一张表的增…

大模型应用开发2-SpringAI实战

SpringAI整合了大多数大模型&#xff0c;而且对于大模型开发的三种技术架构都有比较好的封装和支持&#xff0c;开发起来非常方便。不同的模型能够接收的输入类型、输出类型不一定相同。SpringAI根据模型的输入和输出类型不同对模型进行了分类&#xff1a; 大模型应用开发大多…

TDengine 时序函数 DIFF 用户手册

DIFF 函数用户手册 函数概述 DIFF 函数用于计算数据列中相邻两行数据的差值&#xff0c;通常用于分析数据的变化趋势和增量。该函数特别适用于监控智能电表数据的变化模式。 语法 SELECT DIFF(column_name [, ignore_negative]) FROM table_name;参数说明 column_name: 数…

清除gradle缓存的某个依赖

要清除 Gradle 缓存中的某个特定依赖&#xff0c;可以按照以下步骤操作&#xff1a;找到依赖在缓存中的路径 Gradle 缓存的默认位置&#xff1a; Windows: C:\Users\<用户名>\.gradle\caches\modules-2\files-2.1 macOS/Linux: ~/.gradle/caches/modules-2/files-2.1 路径…

机器人控制器开发(驱动层——伺服驱动canopen的sdo和pdo)

文章总览 一、核心区别&#xff1a;一句话概括 • ​​SDO&#xff08;服务数据对象&#xff09;​​&#xff1a;像 ​​“问询/设置”​​。用于​​点对点、非周期​​的参数配置和读取。例如&#xff0c;设置电机增益、读取当前位置等。​​速度慢&#xff0c;但确保数据准…

返利APP排行榜数据实时更新:基于 WebSocket 与 Redis 的高并发数据推送技术

返利APP排行榜数据实时更新&#xff1a;基于 WebSocket 与 Redis 的高并发数据推送技术 大家好&#xff0c;我是阿可&#xff0c;微赚淘客系统及省赚客APP创始人&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在返利APP运营中&#xff0c;用户对排…

[论文阅读] 人工智能 + 软件工程 | 告别冗余HTML与高算力消耗:EfficientUICoder如何破解UI2Code的token难题

告别冗余HTML与高算力消耗&#xff1a;EfficientUICoder如何破解UI2Code的token难题 论文信息信息类别具体内容论文原标题EfficientUICoder: A Dual-Modal Token Compression Framework for UI-to-Code Generation with Multimodal Large Language Models论文链接https://arxiv…

【STM32项目开源】STM32单片机智能语音风扇控制系统

目录 一、设计背景和意义 1.1设计背景&#xff1a; 1.2设计意义&#xff1a; 二、实物展示 三、硬件功能介绍 2.1 硬件清单&#xff1a; 2.2 功能介绍&#xff1a; 四、软件设计流程图 五、硬件PCB展示 六、软件主函序展示 七、单片机实物资料 资料获取 查看主页介…

git clone vllm

这个错误不是 vLLM 本身的问题&#xff0c;而是 pip 在 clone GitHub 仓库时失败了&#xff1a; error: RPC failed; curl 16 Error in the HTTP2 framing layer fatal: expected flush after ref listing根因通常是&#xff1a; 网络问题&#xff08;访问 GitHub 被中断 / 代理…

光谱相机的新兴领域应用

光谱相机在‌新兴领域‌的应用正快速拓展&#xff0c;结合‌AI、纳米技术、量子传感‌等前沿科技&#xff0c;突破传统检测极限。以下是六大最具潜力的新兴应用方向及技术突破点&#xff1a;‌1. 元宇宙与数字孪生‌‌应用场景‌&#xff1a;‌虚拟材质建模‌&#xff1a;通过高…

深入理解数据结构之复杂度

文章目录1.数据结构前言1.1 数据结构1.2 算法2.算法效率2.1 复杂度的概念2.2 复杂度的重要性3.1 大O的渐进表式法3.2 时间复杂度计算示例3.2.1 示例13.2.2 示例23.2.3 示例33.2.4 示例43.2.5 示例53.2.6 示例63.2.7 示例74.空间复杂度4.1 空间复杂度计算示例4.1.1 示例14.1.2 示…

【Vue3】10-编写vue项目时,ref的应用(2)

合集篇&#xff1a; 1.【Vue3】创建并运行一个简易的Vue3项目 2.【Vue3】编写vue实现一个简单效果&#xff0c;并使用setup糖简化代码 目录refref 定义对象类型的响应式数据1. 概念理解a. 概念b. 分析2. 代码实操代码场景步骤一&#xff1a;导入ref步骤二&#xff1a;修改数据形…