TDengine 特殊選擇函數 MODE() 用戶手冊

在這里插入圖片描述

MODE 函數用戶手冊

函數定義

MODE(expr)

功能說明

MODE() 函數返回指定列中出現頻率最高的值(眾數)。如果有多個值具有相同的最高頻率,系統會返回其中一個值。該函數會忽略 NULL 值。

算法原理

MODE 函數的計算過程如下:

  1. 數據收集: 遍歷指定列的所有非 NULL 值
  2. 頻率統計: 使用哈希表記錄每個值的出現次數
  3. 眾數識別: 找出出現次數最多的值
  4. 結果返回: 如果存在多個具有相同最高頻率的值,返回其中一個

版本要求

  • 最低版本: v3.0.0.0

返回值

  • 數據類型: 與輸入參數相同的數據類型
  • 返回內容: 出現頻率最高的值

參數說明

參數類型說明取值范圍
expr表達式要統計的字段表達式所有數據類型

適用數據類型

MODE 函數支持以下數據類型:

  • 數值類型: TINYINT、SMALLINT、INT、BIGINT、FLOAT、DOUBLE、UTINYINT、USMALLINT、UINT、UBIGINT、DECIMAL
  • 字符串類型: VARCHAR、NCHAR
  • 布爾類型: BOOL
  • 時間戳類型: TIMESTAMP

適用范圍

  • 表類型: 表和超級表
  • 查詢支持: 支持聚合查詢
  • 函數特性: 聚合函數、忽略 NULL 值

基本用法示例

單列查詢

-- 查找電流的眾數值
SELECT MODE(current) FROM meters;-- 查找電壓的眾數值
SELECT MODE(voltage) FROM meters;-- 查找相位的眾數值
SELECT MODE(phase) FROM meters;

分組查詢

-- 按區域分組查找電流眾數
SELECT location,MODE(current) as current_mode
FROM meters 
GROUP BY location;

字符串類型的眾數

-- 查找最常見的設備狀態
SELECT MODE(device_status) FROM device_logs;-- 查找最常見的告警類型
SELECT MODE(alarm_type) FROM alarm_records;

智能電表場景應用示例

基于智能電表數據庫結構:

-- 數據庫和表結構
USE test;
-- meters 超級表包含 ts, current, voltage, phase 字段和 location, groupid 標簽

場景1:負載模式分析

-- 查找全網最常見的電流值
SELECT MODE(current) as typical_current FROM meters;-- 查找全網最常見的電壓值
SELECT MODE(voltage) as typical_voltage FROM meters;-- 查找全網最常見的相位值
SELECT MODE(phase) as typical_phase FROM meters;

場景2:按區域分析典型負載

-- 查找每個區域最典型的電流值
SELECT location,MODE(current) as regional_typical_current
FROM meters 
GROUP BY location;-- 查找每個區域最典型的電壓值
SELECT location,MODE(voltage) as regional_typical_voltage
FROM meters 
GROUP BY location;

場景3:設備運行模式分析

-- 查找各電表的典型運行電流
SELECT tbname,location,MODE(current) as device_typical_current
FROM meters 
GROUP BY tbname, location;-- 查找各電表的典型運行電壓
SELECT tbname,location,MODE(voltage) as device_typical_voltage
FROM meters 
GROUP BY tbname, location;

場景4:負載基準值確定

-- 確定各區域的負載基準值
SELECT location,MODE(current) as load_baseline,COUNT(*) as total_readings
FROM meters 
GROUP BY location;

場景5:電網穩定性分析

-- 分析電壓穩定性(最常見電壓值)
SELECT location,MODE(voltage) as stable_voltage_level,groupid
FROM meters 
GROUP BY location, groupid;

場景6:設備分類分析

-- 根據典型電流值對設備進行分類
SELECT tbname,location,MODE(current) as typical_load,CASE WHEN MODE(current) < 5 THEN '低負載設備'WHEN MODE(current) < 15 THEN '中負載設備'WHEN MODE(current) < 25 THEN '高負載設備'ELSE '超高負載設備'END as device_category
FROM meters 
GROUP BY tbname, location;

場景7:時間段負載模式

-- 分析最近一周的典型負載模式
SELECT location,MODE(current) as weekly_typical_current
FROM meters 
WHERE ts >= NOW() - 7d
GROUP BY location;-- 分析工作日的典型負載模式
SELECT location,MODE(current) as weekday_typical_current
FROM meters 
WHERE ts >= NOW() - 30d AND WEEKDAY(ts) BETWEEN 1 AND 5
GROUP BY location;

場景8:電力質量標準分析

-- 分析各區域的標準電壓值
SELECT location,MODE(voltage) as standard_voltage,CASE WHEN MODE(voltage) BETWEEN 215 AND 225 THEN '標準電壓區域'WHEN MODE(voltage) < 215 THEN '低電壓區域'WHEN MODE(voltage) > 225 THEN '高電壓區域'ELSE '電壓不穩定區域'END as voltage_quality
FROM meters 
GROUP BY location;

場景9:設備組運行特征

-- 分析不同設備組的運行特征
SELECT groupid,location,MODE(current) as group_typical_current,MODE(voltage) as group_typical_voltage,MODE(phase) as group_typical_phase
FROM meters 
GROUP BY groupid, location;

場景10:異常檢測基準建立

-- 建立異常檢測的基準值
SELECT tbname,location,MODE(current) as normal_current_baseline,MODE(voltage) as normal_voltage_baseline
FROM meters 
WHERE ts >= NOW() - 30d  -- 最近30天的數據
GROUP BY tbname, location;

分步查詢示例

當需要結合其他統計信息時:

-- 第一步:獲取眾數
SELECT location,MODE(current) as current_mode
FROM meters 
GROUP BY location;-- 第二步:獲取其他統計信息
SELECT location,AVG(current) as current_avg,MAX(current) as current_max,MIN(current) as current_min,COUNT(*) as total_count
FROM meters 
GROUP BY location;-- 第三步:在應用層分析眾數與其他統計量的關系

實際應用價值

負載預測

-- 為負載預測提供基準數據
SELECT location,MODE(current) as predicted_base_load
FROM meters 
WHERE ts >= NOW() - 30d
GROUP BY location;

設備配置優化

-- 為設備配置提供參考
SELECT groupid,MODE(voltage) as recommended_voltage_setting,MODE(current) as typical_current_consumption
FROM meters 
GROUP BY groupid;

注意事項

  1. NULL 值處理: MODE 函數自動忽略 NULL 值
  2. 多眾數處理: 當有多個值具有相同最高頻率時,返回其中一個值
  3. 數據類型保持: 返回值的數據類型與輸入參數保持一致
  4. 性能考慮: 在大表上使用時建議配合適當的時間范圍過濾
  5. 樣本量要求: 建議有足夠的樣本量以獲得有意義的眾數
  6. 聚合函數限制: 不能與其他特定聚合函數在同一 SELECT 中混用
  7. 分組查詢: 適合與 GROUP BY 配合使用進行分類分析

相關函數

  • AVG(): 返回平均值
  • MAX(): 返回最大值
  • MIN(): 返回最小值
  • COUNT(): 返回計數

關于 TDengine

TDengine 專為物聯網IoT平臺、工業大數據平臺設計。其中,TDengine TSDB 是一款高性能、分布式的時序數據庫(Time Series Database),同時它還帶有內建的緩存、流式計算、數據訂閱等系統功能;TDengine IDMP 是一款AI原生工業數據管理平臺,它通過樹狀層次結構建立數據目錄,對數據進行標準化、情景化,并通過 AI 提供實時分析、可視化、事件管理與報警等功能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/99017.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/99017.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/99017.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

智能外骨骼技術應用場景及價格可接受區間分析

一、引言 智能外骨骼機器人融合機械、人工智能和傳感器技術,增強或恢復人體運動能力。2025年,該技術在醫療康復、工業生產、軍事應用和消費市場快速普及。本文分析其應用場景、市場需求、典型產品、價格可接受區間及相關來源,探討普及的關鍵因素。 二、主要應用場景及產品…

Vue模板中傳遞對象或數組時,避免直接使用字面量[]和{}

在 Vue 中&#xff0c;直接在模板中使用 [] 或 {} 作為 prop 值會導致子組件不必要的重新渲染&#xff0c;因為每次父組件渲染時都會創建新的引用。以下是解決方案和最佳實踐&#xff1a; 1. 避免在模板中直接使用字面量 <!-- 避免這樣寫 --> <ChildComponent :items&…

【C++】list容器的模擬實現

目錄 1. 節點(list_node) 的結構 2. 哨兵位頭節點 3. list容器的成員變量 4. 插入/刪除操作 4.1 插入操作&#xff08;insert&#xff09; 4.2 刪除操作&#xff08;erase&#xff09; 5. 迭代器的實現 6. 不同迭代器和const容器的限制 7. 重載operator-> 8. 迭代器…

三大運營商eSIM手機業務開通加速

截至2025年9月11日&#xff0c;中國三大運營商eSIM手機業務開通情況呈現明顯差異化&#xff1a;中國聯通已率先支持eSIM手機業務&#xff0c;但僅限于特定城市和設備&#xff1b;中國移動和中國電信則處于"技術準備就緒&#xff0c;等待政策批復"階段&#xff0c;預計…

基于SpringBoot的足球論壇系統+論文示例參考

1.項目介紹 系統角色&#xff1a;管理員、普通用戶功能模塊&#xff1a;用戶管理、足球賽事、球員信息、推薦話題、帖子信息、周邊商城、訂單信息、系統管理等技術選型&#xff1a;SpringBoot&#xff0c;Vue等 測試環境&#xff1a;idea2024&#xff0c;jdk1.8&#xff0c;mys…

數據庫中悲觀鎖小結

實際上&#xff0c;悲觀并發控制實際上是“先取鎖再訪問”的保守策略&#xff0c;為數據處理的安全提供了保證。但是在效率方面&#xff0c;處理加鎖的機制會讓數據庫產生額外的開銷&#xff0c;還有增加產生死鎖的機會&#xff1b;另外&#xff0c;在只讀型事務處理中由于不會…

結構光三維重建原理詳解(1)

1. 基本原理概述 結構光三維重建&#xff08;Structured Light 3D Reconstruction&#xff09;是一種主動式光學測量方法。其核心思想是&#xff1a; 向物體表面投射一組 已知的、編碼好的光柵/條紋圖案&#xff1b;使用一個或多個攝像機拍攝這些條紋在物體表面的變形情況&…

TruckSim與Matlab-Simulink聯合仿真(一)

摘要 從0到1的TruckSim與Matlab-Simulink 簡單的聯合仿真。 1. 環境搭建 matlab版本&#xff1a;R2022a TruckSim版本&#xff1a;2019 其他適配版本自行搜索。 matlabR2022a安裝參考&#xff1a;參考鏈接 TruckSim2019安裝包百度網盤鏈接&#xff0c;里面有安裝流程&#x…

后端post請求返回頁面,在另一個項目中請求過來會出現的問題

目錄 1.后端post請求返回頁面&#xff0c;跨域問題 一、核心問題&#xff1a;跨域&#xff08;CORS&#xff09;限制&#xff08;最直接的技術障礙&#xff09; 具體表現&#xff1a; 二、安全性問題&#xff1a;CSRF 攻擊風險被放大 原理與危害&#xff1a; 三、交互體驗…

APT32F0042F6P6 32位微控制器(MCU)單片機 APT愛普特微電子 芯片核心解析

一、核心解析&#xff1a;APT32F0042F6P6 是什么&#xff1f;1. 電子元器件類型APT32F0042F6P6 是愛普特微電子&#xff08;APTCHIP&#xff09; 推出的一款基于平頭哥THead內核的32位微控制器&#xff08;MCU&#xff09;。它采用TSSOP20封裝&#xff0c;是一款主打高性價比、…

SDR集成式收發器設計資源

一、AD9361 制造商產品編號&#xff1a;ADRV9361-Z7035 庫存編號&#xff1a;4032703 價格&#xff1a;CNY17,737.18 含稅 制造商產品編號&#xff1a;ADRV1CRR-BOB 庫存編號&#xff1a;4023108 價格&#xff1a;CNY3,145.87 含稅 制造商產品編號&#xff1a;ADRV1CRR-FMC 庫存…

將Varjo XR技術融入飛行模擬器,有效降低成本提升訓練效果

擴展現實(XR)飛行模擬器通過以較低的成本提供沉浸式和逼真的飛行環境&#xff0c;徹底改變了飛行訓練。本文將XR利用了最近的研究和數據進行綜合分析&#xff0c;評估飛行模擬器的有效性。此外&#xff0c;根據XR技術在航空訓練中的優勢和應用&#xff0c;評估XR飛行模擬器最終…

簡單的GIT操作學習記錄

Git 版本控制基本使用 1.Idea版本共計基本操作 公司使用Git作為代碼版本管理工具&#xff0c;平時使用非常頻繁這里簡單整理方便后續學習查看 1.1 merge未推送回滾 我們代碼merge操作后&#xff0c;并且沒有推送到遠端&#xff0c;本地項目發現有推送箭頭&#xff0c;可以使…

Spring Boot 與前端文件下載問題:大文件、斷點續傳與安全校驗

前言在企業級 Spring Boot 項目中&#xff0c;文件下載 是非常常見的功能場景&#xff1a;用戶下載報表、合同、發票 PDF下載圖片、音視頻資源系統導出大規模 Excel/CSV 數據然而&#xff0c;很多開發者在實現文件下載時&#xff0c;會遇到 下載失敗、文件損壞、性能瓶頸、斷點…

主板硬件研發基礎--HDMI工作原理

HDMI 接口 技術原理:HDMI 接口采用 TMDS 技術傳輸數字信號,不僅可以傳輸高清視頻信號,還能同時傳輸多聲道音頻信號。它支持 EDID 和 DDC2B,設備之間能夠自動協商并選擇最合適的視頻 / 音頻格式,實現 “即插即用” 功能。 接口類型:常見的有標準 HDMI 接口、Mini-HDMI 接口…

`Object.groupBy`將數組中的數據分到對象中

Object.groupBy 將一個對象或者數組的元素按照規則分組&#xff0c; 返回一個新對象&#xff0c; Object.groupBy(items, callbackFn) items&#xff1a;要分組的對象或數組&#xff08;通常是數組&#xff09;。 callbackFn(element, index, array)&#xff1a;回調函數&#…

反序列化漏洞詳解

用途限制聲明&#xff0c;本文僅用于網絡安全技術研究、教育與知識分享。文中涉及的滲透測試方法與工具&#xff0c;嚴禁用于未經授權的網絡攻擊、數據竊取或任何違法活動。任何因不當使用本文內容導致的法律后果&#xff0c;作者及發布平臺不承擔任何責任。滲透測試涉及復雜技…

SQL數據分析原代碼--創建表與簡單查詢

CREATE TABLE&#xff1a;創建表&#xff0c;定義字段名、類型、注釋INSERT INTO&#xff1a;插入數據&#xff0c;支持單條或批量插入SELECT&#xff1a;查詢數據&#xff0c;*表示所有字段&#xff0c;AS可起別名&#xff0c;DISTINCT去重WHERE&#xff1a;條件篩選&#xff…

k8s查詢ServiceAccount有沒有列出 nodes 的權限

要檢查 ServiceAccount xxxxxx:default 是否具有列出 nodes 的權限&#xff0c;可以使用以下方法&#xff1a;1. **使用 kubectl auth can-i 命令**這是最直接的方法&#xff0c;可以檢查特定用戶或 ServiceAccount 是否具有特定權限&#xff1a;kubectl auth can-i list nodes…

調試Python程序時,控制臺一直打印SharedMemory read faild

from tkinter import filedialog filedialog.askopenfilename()在使用 tkinter 時&#xff0c;只要一處罰&#xff0c;控制臺就不停打印 SharedMemory read faild &#xff0c;雖然能用&#xff0c;但是大大的破壞了調試體驗&#xff0c;看到如下的提示&#xff0c;你說煩不煩&…