TDengine 選擇函數 BOTTOM() 用戶手冊

在這里插入圖片描述

BOTTOM() 函數用戶手冊

函數定義

BOTTOM(expr, k)

功能說明

BOTTOM() 函數統計表/超級表中某列的值最小 k 個非 NULL 值。如果多條數據取值一樣,全部取用又會超出 k 條限制時,系統會從相同值中隨機選取符合要求的數量返回。

返回值

  • 數據類型: 同應用的字段
  • 返回內容: 最小的 k 個值及其對應的時間戳

參數說明

參數類型說明取值范圍
expr數值類型要統計的字段表達式任意數值類型字段
kINTEGER返回最小值的數量1 ≤ k ≤ 100

適用數據類型

  • 數值類型: TINYINT、SMALLINT、INT、BIGINT、FLOAT、DOUBLE、DECIMAL

適用范圍

  • 表類型: 表和超級表
  • 查詢支持: 不支持嵌套子查詢

使用說明

  1. k 值限制: k 值取值范圍為 1≤k≤100
  2. 時間戳返回: 系統同時返回該記錄關聯的時間戳列
  3. 相同值處理: 當存在相同最小值且超出 k 條限制時,系統隨機選取
  4. NULL 值處理: 忽略 NULL 值,只統計非 NULL 值
  5. 限制條件: BOTTOM 函數不支持 FILL 子句

基本用法示例

簡單查詢

-- 獲取電流最小的3個值
SELECT BOTTOM(current, 3) FROM meters;-- 獲取電壓最小的5個值
SELECT BOTTOM(voltage, 5) FROM meters;-- 獲取相位最小的1個值
SELECT BOTTOM(phase, 1) FROM meters;

NULL 值處理

-- BOTTOM 函數自動忽略 NULL 值
SELECT BOTTOM(current, 10) FROM meters;
-- 只返回非 NULL 的最小值

智能電表場景應用示例

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

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

場景1:故障診斷 - 找出電流異常低的記錄

-- 查找電流最低的10個異常記錄
SELECT BOTTOM(current, 10) FROM meters 
WHERE ts >= '2024-01-01' AND ts < '2024-02-01';-- 輸出結果包含時間戳和電流值,便于定位異常時間點

場景2:按區域查找最低電壓

-- 查找每個區域電壓最低的5個記錄
SELECT location, BOTTOM(voltage, 5) FROM meters 
WHERE ts >= '2024-01-01' AND ts < '2024-02-01'
GROUP BY location;

場景3:設備性能分析 - 最低相位記錄

-- 查找相位最低的8個記錄,用于分析設備性能
SELECT BOTTOM(phase, 8) FROM meters 
WHERE ts >= '2024-01-01' AND ts < '2024-02-01'AND location = 'California.SanFrancisco';

場景4:電網監控 - 多指標最低值分析

-- 分別查找各項指標的最低值
-- 電流最低的3個值
SELECT 'current' as metric, ts, current as value 
FROM (SELECT BOTTOM(current, 3) FROM meters WHERE ts >= TODAY() - 7d);-- 電壓最低的3個值  
SELECT 'voltage' as metric, ts, voltage as value
FROM (SELECT BOTTOM(voltage, 3) FROM meters WHERE ts >= TODAY() - 7d);-- 相位最低的3個值
SELECT 'phase' as metric, ts, phase as value
FROM (SELECT BOTTOM(phase, 3) FROM meters WHERE ts >= TODAY() - 7d);

場景5:按時間段查找異常低值

-- 查找工作時間內電流最低的記錄(可能表示設備故障)
SELECT BOTTOM(current, 15) FROM meters 
WHERE ts >= '2024-01-01 08:00:00' AND ts <= '2024-01-01 18:00:00'AND WEEKDAY(ts) NOT IN (5, 6);  -- 排除周末

場景6:設備維護 - 識別性能下降的電表

-- 查找電壓最低的20個記錄,可能需要維護
SELECT location, BOTTOM(voltage, 20) FROM meters 
WHERE ts >= TODAY() - 30d  -- 最近30天
GROUP BY location;

場景7:電網穩定性分析 - 相位異常檢測

-- 查找相位值異常低的記錄(接近0或負值)
SELECT BOTTOM(phase, 25) FROM meters 
WHERE ts >= '2024-01-01' AND ts < '2024-02-01'AND phase < 0.1;  -- 相位值異常低

場景8:按設備組查找最低值

-- 按設備組查找電流最低的記錄
SELECT groupid, BOTTOM(current, 12) FROM meters 
WHERE ts >= TODAY() - 14d  -- 最近兩周
GROUP BY groupid;

場景9:負載分析 - 最低負載時段識別

-- 查找電流最低的時段,用于負載調度參考
SELECT BOTTOM(current, 30) FROM meters 
WHERE ts >= '2024-01-01' AND ts < '2024-01-08'AND WEEKDAY(ts) IN (5, 6);  -- 只看周末的低負載

場景10:質量控制 - 電壓質量監控

-- 監控電壓質量,找出可能的電壓跌落
SELECT location, BOTTOM(voltage, 10) FROM meters 
WHERE ts >= TODAY() - 7dAND voltage < 200  -- 電壓異常低的閾值
GROUP BY location;

場景11:結合其他函數進行綜合分析

-- 對比最高值和最低值的差異
-- 注意:這需要分別執行兩個查詢
-- 查詢最低電流值
SELECT 'BOTTOM' as type, BOTTOM(current, 5) FROM meters 
WHERE ts >= TODAY() - 1d;-- 查詢最高電流值  
SELECT 'TOP' as type, TOP(current, 5) FROM meters 
WHERE ts >= TODAY() - 1d;

場景12:告警系統 - 異常低值監控

-- 設置告警條件,監控異常低的電流值
SELECT location,'LOW_CURRENT_ALERT' as alert_type,BOTTOM(current, 3) 
FROM meters 
WHERE ts >= NOW() - INTERVAL 1 HOURAND current < 5.0  -- 電流異常低的閾值
GROUP BY location;

與其他函數的對比

BOTTOM vs TOP

-- 電流最低的5個值
SELECT 'BOTTOM' as type, BOTTOM(current, 5) FROM meters 
WHERE ts >= TODAY();-- 電流最高的5個值
SELECT 'TOP' as type, TOP(current, 5) FROM meters 
WHERE ts >= TODAY();

BOTTOM vs MIN

-- MIN 只返回最小值,不返回時間戳
SELECT MIN(current) FROM meters WHERE ts >= TODAY();-- BOTTOM 返回最小的k個值及其時間戳
SELECT BOTTOM(current, 1) FROM meters WHERE ts >= TODAY();

性能優化建議

  1. 時間范圍限制: 使用適當的時間范圍限制來提高查詢性能
  2. 索引利用: 確保時間戳字段有適當的索引
  3. k值選擇: 根據實際需求選擇合適的k值,避免不必要的大值
  4. WHERE條件: 合理使用WHERE條件過濾數據

注意事項

  1. k值限制: k 值必須在 1-100 范圍內
  2. 相同值處理: 當存在相同最小值時,系統會隨機選取
  3. NULL值忽略: 函數自動忽略 NULL 值
  4. FILL限制: 不支持 FILL 子句
  5. 時間戳返回: 結果總是包含對應的時間戳
  6. 數據類型: 只適用于數值類型字段

關于 TDengine

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

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

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

相關文章

西門子 S7-200 SMART PLC 實現星三角降壓啟動控制:原理、案例與完整程序

在工業控制場景中&#xff0c;中型異步電機直接啟動時會產生遠超額定電流的沖擊電流&#xff08;通常為額定電流的 5-7 倍&#xff09;&#xff0c;不僅會影響電網穩定性&#xff0c;還可能對機械設備造成損傷。星三角&#xff08;Y-Δ&#xff09;降壓啟動是解決這一問題的經典…

【Android】View 的基礎知識

【Android】View 的基礎知識 1. 什么是 View&#xff1f; View 是 Android 中所有UI組件的基礎類。它表示屏幕上的一個矩形區域&#xff0c;負責繪制內容和處理用戶交互事件。所有的 UI 組件&#xff08;如按鈕、文本框等&#xff09;都是 View 的子類&#xff0c;而 ViewGroup…

西門子 S7-200 SMART PLC 實現電機點動與連續運行綜合控制

在工業生產中&#xff0c;電機控制并非單一模式&#xff1a;調試設備時需要 “按動即轉、松開即停” 的點動功能&#xff0c;正常生產時則需要 “一鍵啟動、持續運行” 的連續控制。本文以西門子 S7-200 SMART PLC 為載體&#xff0c;詳細講解電機點動控制原理&#xff0c;并設…

如何解決pip安裝報錯ModuleNotFoundError: No module named ‘sphinx-rtd-theme’問題

【Python系列Bug修復PyCharm控制臺pip install報錯】如何解決pip安裝報錯ModuleNotFoundError: No module named ‘sphinx-rtd-theme’問題 摘要 在使用 PyCharm 開發 Python 項目時&#xff0c;pip install 報錯是常見痛點。特別是在構建文檔或引入第三方庫時&#xff0c;開…

HakcMyVM-Literal

目錄信息搜集漏洞利用權限提升信息搜集 主機發現 ┌──(kali?kali)-[~] └─$ nmap -sn 192.168.21.0/24 Nmap scan report for 192.168.21.5端口掃描 ┌──(kali?kali)-[~] └─$ nmap -sS -sV -O -p- 192.168.21.5 Starting Nmap 7.95 ( https://nmap.org ) a…

0904 類的繼承

Part 1.梳理思維導圖一.繼承中的特殊成員函數1.構造函數父類的構造函數會被繼承到子類中&#xff0c;在構造的順序中&#xff0c;是先構造父類&#xff0c;再構造子類#include <iostream>using namespace std;class Father { public:string name; protected:int *age; pr…

PDF教程|如何把想要的網頁保存下來?

前段時間有個小伙伴咨詢了小白&#xff1a;領導想要某個網頁的整個頁面&#xff0c;有沒有比較好的方法把它保存下來&#xff1f; 在他找到小白之前&#xff0c;這種事情他已經接到好幾次了&#xff0c;每次都是怎么解決的呢&#xff1f;其實很簡單&#xff0c;就是打開Word&a…

【bash】命令查看當前目錄下文件個數

要用 ls 查看當前目錄下的文件個數&#xff0c;可以結合 wc -l 來統計行數&#xff1a; ls -1 | wc -l說明&#xff1a; ls -1&#xff1a;以一行一個文件的方式列出。wc -l&#xff1a;統計行數&#xff0c;也就是文件/目錄的數量。 ?? 需要注意&#xff1a; 這個方法會把文…

「日拱一碼」081 機器學習——梯度增強特征選擇GBFS

目錄 什么是梯度增強特征選擇&#xff08;GBFS&#xff09; 為什么 GBM 適合做特征選擇 GBFS 的一般步驟 代碼示例 什么是梯度增強特征選擇&#xff08;GBFS&#xff09; GBFS 并非一個像 Lasso 或隨機森林那樣有嚴格標準定義的獨立算法&#xff0c;而是一種基于梯度提升機…

解構匯編, 萬物起源

匯編的誕生匯編全景圖核心主干: CPU架構主要分支: 語法和工具共同的地貌: 核心概念延伸: 跨平臺 & 跨架構跨平臺跨架構總結以 GAS vs. NASM 為例NASM 不支持跨架構 ≠ 無法在ARM架構上的系統安裝匯編的誕生 機器語言的困境 早期的程序員直接使用機器語言進行編程機器語言由…

廣州旅游網站系統 - 純靜態旅游展示平臺

&#x1f31f; 廣州旅游網站系統 - 純靜態旅游展示平臺觀世界才有世界觀 - 一個集景區展示、旅游攻略、文化傳播于一體的精美旅游網站&#x1f4cb; 項目概述 這是一個專注于廣州旅游文化的純靜態網站系統&#xff0c;采用現代化的前端技術棧&#xff0c;為游客提供全方位的廣州…

Qt UDP通信學習

Qt UDP通信學習 一、項目概述 本項目基于Qt框架實現了UDP通信功能&#xff0c;支持單播與廣播消息收發&#xff0c;展示了UDP套接字的基本用法&#xff0c;適合初學者學習Qt網絡模塊的實際應用。 二、項目結構 55.pro&#xff1a;Qt工程文件&#xff0c;配置模塊與源碼文件main…

古德哈特定律(Goodhart‘s Law)

古德哈特定律&#xff08;Goodhart’s Law&#xff09;表述為“當一個指標變成了目標&#xff0c;它將不再是個好指標”。 該定律由英國經濟學家查爾斯古德哈特&#xff08;Charles Goodhart&#xff09;在1975年提出&#xff0c;最初用于批判撒切爾夫人政府的貨幣主義政策&…

在 ASP.NET Core 8 Web API 中實現基于角色的授權 安全且可擴展 API 的最佳實踐

掌握基于角色的授權&#xff1a;使用專家策略保護您的 ASP.NET Core 8 Web API。在 ASP.NET Core 8 Web API 中實現基于角色的授權&#xff1a;安全且可擴展 API 的最佳實踐介紹授權是任何 Web 應用程序的關鍵組件。在開發 API 時&#xff0c;使用基于角色的授權保護端點可確保…

AutoHotkey識別圖片

一、下載ImagePut插件 下載地址&#xff1a;GitHub - iseahound/ImagePut: A core library for images in AutoHotkey. Supports AutoHotkey v1 and v2. 二、將插件和要搜索的圖片導入項目 #Include ./plugin/ImagePut.ahk ; 截取當前屏幕 pic : ImagePutBuffer(0) point : p…

CamX-Camera常用編譯命令和adb指南

g_camxsettings vendor/qcom/proprietary/camx/src/settings/g_camxsettings.xml 控制相機debug的信息都在該文件里面 0、相關代碼 framwork層 frameworks/av/camera/ frameworks/av/services/camera frameworks/av/services/camera frameworks/hardware/interfaces/camerase…

LabVIEW 實現顏色平滑漸變控制

LabVIEW 中實現 LED 顏色從藍到紅的平滑漸變顯示在 LabVIEW 開發中&#xff0c;若需讓 LED&#xff08;或類 LED 顯示控件&#xff09;實現從藍色到紅色的平滑色彩漸變&#xff08;模擬溫度等參數從低到高的視覺反饋&#xff09;&#xff0c;可通過自定義顏色查找表 數值縮放映…

陰陽學:從入門到精通

第一篇&#xff1a;入門篇——陰陽基礎理論1.1 陰陽的起源與哲學意義陰陽概念的歷史淵源《易經》中的陰陽思想陰陽與宇宙、自然、人生的關系陰陽對思想、行為、社會的影響1.2 陰陽的基本屬性與符號陰陽的特征、象征與對立統一陰陽在自然界的表現&#xff08;晝夜、冷熱、動靜等…

Java工業通信實戰(三):Modbus RTU串口通信實現

想象一下&#xff0c;你要和一臺工業設備"對話"&#xff0c;比如詢問溫度傳感器"現在多少度&#xff1f;“或者告訴電機"轉快一點”。 Modbus RTU就是這種"對話"的標準語言&#xff0c;就像人與人之間說普通話一樣。 它采用主從結構&#xff0c;…

CentOS安裝或升級protoc

卸載舊版本 sudo yum remove protobuf protobuf-c protobuf-compiler -y sudo rm -f /usr/bin/protoc sudo rm -rf /usr/include/google/protobuf 下載 wget https://github.com/protocolbuffers/protobuf/releases/download/v3.15.0/protoc-3.15.0-linux-x86_64.zip unz…