记一次: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.mzph.cn/web/13293.shtml

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

相关文章

植物大战僵尸杂交版(含下载方式)

最近时间,一款很火的植物大战僵尸杂交版火爆出圈,在玩家之间疯狂扩散。各种奇特的杂交组合让游戏变得更加有趣。 游戏介绍 植物大战僵尸杂交版是一款将《植物大战僵尸》和植物杂交概念结合在一起的独特塔防策略游戏。它将《植物大战僵尸》中的植物与进行…

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…

注册讲堂 | 体外诊断试剂分类目录的变化

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 : 资源操作的唯一入口,接收用户输入的命令&…

文本控件Text Control示例: 将图像插入 TX 的各种方法

TX Text Control 是一款功能类似于 MS Word 的文字处理控件,包括文档创建、编辑、打印、邮件合并、格式转换、拆分合并、导入导出、批量生成等功能。广泛应用于企业文档管理,网站内容发布,电子病历中病案模板创建、病历书写、修改历史、连续打…

在Linux上面部署ELK

注明:一下的软件需要自己准备 一、准备环境: 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、 问题场景 当引脚属性(Pin type)为passive时,原理图编译的默认规则是不会去检查它们是否有连接的。在实际设计过程中,经常会有导线虚连,漏连的事…

医疗传感器种类不断增多 市场规模逐渐扩大

医疗传感器种类不断增多 市场规模逐渐扩大 医疗传感器是将人体的生理信息转换为电信息的变换装置。医疗传感器具有高灵敏度、高精度、实时监测等优点,可以检测佩戴者的心率、呼吸频率、活动量等,从而更加准确地了解身体情况。   经过多年发展&#…

【极简】docker常用操作

镜像images是静态的 容器container是动态的,是基于镜像的,类似于一个进程。 查看docker images: docker images 或者docker image ls 查看docker container情况:docker ps -a,-a意思是--all 运行一个container: doc…

数字水印 | 奇异值分解 SVD 的 Python 代码实现

🥑原理:数字水印 | 奇异值分解 SVD 的定义、原理及性质 🥑参考:Python 机器学习笔记:奇异值分解(SVD)算法 正文 对于一个图像矩阵,我们总可以将其分解为以下形式: 通过…

使用API有效率地管理Dynadot域名,默认将域名隐形转发至其他界面

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

【大模型微调】一文掌握7种大模型微调的方法

本篇文章深入分析了大型模型微调的基本理念和多样化技术,细致介绍了LoRA、适配器调整(Adapter Tuning)、前缀调整(Prefix Tuning)等多个微调方法。详细讨论了每一种策略的基本原则、主要优点以及适宜应用场景,使得读者可以依据特定的应用要求和计算资源限…

openGauss一主两备集群异常断电后不能正常启动的解决过程简记

背景 因异常断电后opengauss 5.0.0版本,一主两备集群启动失败。 报错不是主机,由于当时没有截图,查看日志后发现报错是: 定位过程 Day1 1. 尝试用另外两台机器启动每台机器 发现都报错自己不是主机,像极了唐僧被妖…

哪款桌面便签app能帮助我提升工作效率

作为上班族,我们每天都要处理大量的工作事项,从策划方案到处理邮件,每一个环节都需高效且有条不紊。在这样的工作环境下,提升效率显得尤为重要。而选择一款优秀的桌面便签app,无疑是提高工作效率的关键。 桌面便签app…