記一次:mysql統計的CAST函數與json字段中的某個字段

前言:因為需求的問題,會遇到將某個json存入到一個字段中,但在統計的時候,又需要將這個json中的某個字段作為條件來統計,所以整理了一下cast函數和json中某個字段的條件判斷

一、淺談mysql的json

?1.1 上例子

SELECTlide.id,lide.event_values -> '$.MeasureValue' AS MeasureValue,lide.event_values -> '$.MeasureIndex_Name' AS MeasureIndex_Name,lide.event_values -> '$.deviceName' AS deviceName,lide.create_time FROMlhkj_iot_driver_event lide

注意:上面的 -> 可以用JSON_EXTRACT(lide.event_values, '$.MeasureValue') 代替,如下

SELECTlide.id,JSON_EXTRACT(lide.event_values, '$.MeasureValue')  AS MeasureValue,JSON_EXTRACT(lide.event_values, '$.MeasureIndex_Name') AS MeasureIndex_Name,JSON_EXTRACT(lide.event_values, '$.deviceName') AS deviceName,lide.create_time FROMlhkj_iot_driver_event lide

1.2 解析

mysq json 主要有JSON 對象(json object )和JSON 數組(json array )兩種類型

$表示整個json對象,在索引數據時用下標(對于json array,從0開始)或鍵值(對于json object,含有特殊字符的key要用"括起來,比如$.“my name”)

根據1.1的篩選后面的json條件參數就可以篩選了

1.3 擴展--mysql相關的json函數

二、淺談CAST函數

2.1 上例子

SELECTCAST( create_time AS date ) AS compareDate,ROUND( AVG( MeasureValue ), 3 ) AS averageValue 
FROM(SELECTlide.id,JSON_EXTRACT(lide.event_values, '$.MeasureValue')  AS MeasureValue,JSON_EXTRACT(lide.event_values, '$.MeasureIndex_Name') AS MeasureIndex_Name,JSON_EXTRACT(lide.event_values, '$.deviceName') AS deviceName,lide.create_time FROMlhkj_iot_driver_event lideWHERElide.create_time BETWEEN '2022-04-01' AND '2024-05-01'AND lide.identifier = 'Rept_MeasureData') tgroup by compareDate;

個人理解:一般CAST要和分組group by組合使用,不僅僅是cast函數,一般的函數都要分組使用不然的話統計出來的只有一條數據往往不是我們想要的結果

2.2 解析

CAST( create_time AS date )是按日期進行轉換的,那么也可以按年,按月等如下

SELECT CAST(create_time  AS CHAR(7)) AS month_as_date,YEAR(CAST(create_time AS DATE)) AS year_number,MONTH(CAST(create_time AS DATE)) AS month_number,ROUND( AVG( MeasureValue ), 3 ) AS averageValue 

但這也不是我想要的結果,如果按年-月統計的話我又該如何應對?所以可以用大招, CHAR(數值)

在MySQL中,CAST函數可以用來轉換或者格式化時間數據類型。我們想要將這個時間格式化為'YYYY-MM-DD HH:MM:SS'格式。

SELECT CAST(event_datetime AS CHAR(19)) AS formatted_datetime
FROM events;
如果你想要將時間轉換為其他格式,你可以更改CHAR(19)為其他的字符長度,并相應地調整格式字符串。例如,如果你想要轉換為'YYYY-MM-DD'格式,你可以這樣做:

SELECT CAST(event_datetime AS CHAR(10)) AS formatted_date
FROM events;
請注意,CAST函數的具體實現可能會依賴于MySQL的版本,上述代碼在MySQL 5.x和更高版本中通常有效。

2.3 擴展--cast規則

CAST函數語法規則:Cast(字段名 as 轉換的類型 )

其中類型可以為:

CHAR[(N)] 字符型
DATE 日期,格式為 ‘YYYY-MM-DD’
DATETIME 日期加具體的時間,格式為 ‘YYYY-MM-DD HH:MM:SS’
DECIMAL float型
SIGNED int 型
TIME 時間,格式為 ‘HH:MM:SS’

--------------------------------------- 上述暫時到這,后續在擴展 ------------------------------------

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

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

相關文章

植物大戰僵尸雜交版(含下載方式)

最近時間,一款很火的植物大戰僵尸雜交版火爆出圈,在玩家之間瘋狂擴散。各種奇特的雜交組合讓游戲變得更加有趣。 游戲介紹 植物大戰僵尸雜交版是一款將《植物大戰僵尸》和植物雜交概念結合在一起的獨特塔防策略游戲。它將《植物大戰僵尸》中的植物與進行…

什么是析構函數?

在編程語言C中,析構函數是一個特別重要的組件,它主要負責在對象生命周期結束時釋放資源和執行清理任務。析構函數的正確實現對于資源管理尤為關鍵,尤其是在處理動態分配內存、文件句柄、網絡連接或其他系統資源時。本文將詳細介紹析構函數的基…

Minio 對象存儲 OSS概述

系列文章目錄 第五章 Minio 對象存儲 OSS概述 Minio 對象存儲 OSS概述 系列文章目錄對象存儲 OSS基本概念存儲空間(Bucket)對象(Object)ObjectKeyRegion(地域)Endpoint(訪問域名)Ac…

C#知識|上位機子窗體嵌入主窗體方法(實例)

哈嘍,你好啊,我是雷工! 上位機開發中,經常會需要將子窗體嵌入到主窗體, 本節練習C#中在主窗體的某個容器中打開子窗體的方法。 01 需求說明 本節練習將【賬號管理】子窗體在主窗體的panelMain容器中打開。 賬號管理子窗體如下: 主窗體的panelMain容器位置如圖: 02 實現…

一次JAVA接口優化記錄

目錄 一次接口優化記錄首先考慮,添加緩存緩存策略方案一:本地緩存方案二:Redis緩存 優化結果原因分析:原因驗證 接口數據分析將響應數據返回大小減少compression壓縮配置完美(代指這里的小系統) 一次接口優…

CentOS 的常見命令

CentOS 是一種廣泛使用的 Linux 發行版,特別在服務器環境中。本文將詳細介紹 CentOS 中常見的命令,以便幫助用戶在操作系統中有效地進行各種操作。下面介紹一下文件和目錄操作、用戶和權限管理、系統信息查看、軟件包管理以及網絡配置等方面的命令。 一…

應用層協議【HTTP和HTTPS】

1.概念 1.1 協議 協議是指在計算機通信和網絡通信中,為了實現數據交換而建立的一套規則、約定或者標準。它定義了通信雙方之間的通信格式、傳輸方式、數據的含義、錯誤處理等細節,從而確保通信的可靠性、有效性和安全性。 >1在計算機網絡中&#x…

Python簡易圖書管理系統重構

在本篇課文中,我們將使用Python語言結合MySQL數據庫,從零開始構建一個簡單的圖書管理系統。該系統旨在幫助圖書館管理員輕松管理圖書的借閱、歸還以及查詢圖書信息等日常操作。我們將分步介紹需求分析、數據庫設計、環境搭建、功能實現等關鍵環節&#x…

注冊講堂 | 體外診斷試劑分類目錄的變化

5月11日,千呼萬喚的《體外診斷試劑分類目錄》(2024年第58號)終于發布! 前世今生 2013年:《6840 體外診斷試劑分類子目錄(2013版)》(以下簡稱2013版目錄) 2017年&#xff…

蘋果永久版安裝PD虛擬機:Parallels Desktop 19 一鍵激活版

Parallels Desktop 19是一款功能強大的虛擬機軟件,專為Mac用戶設計,允許用戶在同一臺Mac電腦上同時運行Windows、Linux等多個操作系統,而無需額外的硬件設備。 下載地址:https://www.macz.com/mac/9581.html?idOTI2NjQ5Jl8mMjcuM…

Kubernetes入門:核心概念

集群架構與組件 一個kubernetes集群主要是由控制節點(master)、工作節點(node)構成,每個節點上都會安裝不同的組件。 master:集群的控制平面,負責集群的決策 ( 管理 ) api-server : 資源操作的唯一入口,接收用戶輸入的命令&…

vue3 項目中 前端實現下載模板 csv文件

做項目時遇到讓前端實現模板下載功能&#xff0c;第一次碰到這種需求&#xff0c;記錄一下。 下載csv 模板&#xff1a; <el-button type"primary" click"download(data/CSVXX.csv)">下載模板</el-button> const download (url) > {con…

文本控件Text Control示例: 將圖像插入 TX 的各種方法

TX Text Control 是一款功能類似于 MS Word 的文字處理控件&#xff0c;包括文檔創建、編輯、打印、郵件合并、格式轉換、拆分合并、導入導出、批量生成等功能。廣泛應用于企業文檔管理&#xff0c;網站內容發布&#xff0c;電子病歷中病案模板創建、病歷書寫、修改歷史、連續打…

在Linux上面部署ELK

注明&#xff1a;一下的軟件需要自己準備 一、準備環境&#xff1a; 1.兩臺elasticsearch主機4G內存 2.兩臺elasticsearch配置主機名node1和node2(可以省略) #vim /etc/hostname #reboot 3. 兩臺elasticsearch配置hosts文件 #vim /etc/hosts 192.168.1.1 node1 192…

RTMP低延遲推流

人總是需要壓力才能進步, 最近有個項目, 需要我在RK3568上, 推流到公網, 最大程度的降低延遲. 廢話不多說, 先直接看效果: 數據經過WiFi發送到Inenter的SRS服務器, 再通過網頁拉流的. 因為是打金任務, 所以逼了自己一把, 把RTMP推流好好捋一遍. 先說說任務目標, 首先是MPP編碼…

【Altium】AD-檢查原理圖中元器件未連接的Passive Pin

1、 文檔目標 如何讓原理圖編譯時找出元器件上未連接的Passive Pin 2、 問題場景 當引腳屬性&#xff08;Pin type&#xff09;為passive時&#xff0c;原理圖編譯的默認規則是不會去檢查它們是否有連接的。在實際設計過程中&#xff0c;經常會有導線虛連&#xff0c;漏連的事…

醫療傳感器種類不斷增多 市場規模逐漸擴大

醫療傳感器種類不斷增多 市場規模逐漸擴大 醫療傳感器是將人體的生理信息轉換為電信息的變換裝置。醫療傳感器具有高靈敏度、高精度、實時監測等優點&#xff0c;可以檢測佩戴者的心率、呼吸頻率、活動量等&#xff0c;從而更加準確地了解身體情況。   經過多年發展&#…

【極簡】docker常用操作

鏡像images是靜態的 容器container是動態的&#xff0c;是基于鏡像的&#xff0c;類似于一個進程。 查看docker images&#xff1a; docker images 或者docker image ls 查看docker container情況&#xff1a;docker ps -a&#xff0c;-a意思是--all 運行一個container: doc…

MySQL not in不等于找不到null的數據

在使用MySQL的NOT IN語句時&#xff0c;如果找不到NULL值&#xff0c;可能是因為NULL值在比較中具有特殊性質。NULL值不等于任何其他值&#xff0c;包括它自己。因此&#xff0c;使用NOT IN語句時&#xff0c;如果列表中包含NULL值&#xff0c;則查詢不會返回任何結果。 解決此…