TDengine 特殊選擇函數 UNIQUE 用戶手冊

在這里插入圖片描述

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;修改數據形…