【MySQL】函数
文章目录
- 1. DQL执行顺序
- 2. 函数
- 2.1 字符串函数
- 2.2 数值函数
- 2.3 日期函数
- 2.4 流程函数
- 2.5 窗口函数
- 2.5.1 介绍
- 2.5.2 聚合窗口函数
- 2.5.3 排名窗口函数
- 2.5.4 取值窗口函数
1. DQL执行顺序

2. 函数
2.1 字符串函数
| 函数 | 功能 |
|---|---|
| concat(s1,s2,…sn) | 字符串拼接,将s1,s2…sn拼接成一个字符串 |
| lower(str) | 将字符串str全部转为小写 |
| upper(str) | 将字符串str全部转为大写 |
| lpad(str, n, pad) | 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度 |
| rpad(str, n, pad) | 右填充,用字符串pad对str的右边进行填充,达到n个字符串长度 |
| trim(str) | 去掉字符串头部和尾部的空格 |
| substring(str, start, len) | 返回字符串str从start位置起len个长度的字符串 |
2.2 数值函数
| 函数 | 功能 |
|---|---|
| ceil(x) | 向上取整 |
| floor(x) | 向下取整 |
| mod(x/y) | 返回x/y的模 |
| rand() | 返回0~1的随机数 |
| round(x,y) | 求参数x的四舍五入的值,保留y位小数 |
2.3 日期函数
| 函数 | 功能 |
|---|---|
| curdate() | 返回当前日期 |
| curtime() | 返回当前时间 |
| now() | 返回当前日期和时间 |
| year(date) | 获取指定date年份 |
| month(date) | 获取指定date月份 |
| day(date) | 获取指定date日期 |
| date_add(date, INTERVAL expr type) | 返回一个日期/时间值加上一个时间间隔expr后的时间值 |
| date_sub(date, INTERVAL expr type) | 返回一个日期/时间值减去一个时间间隔expr后的时间值 |
| datediff(date1, date2) | 返回起始时间date1和结束时间date2之间的天数 |
2.4 流程函数
| 函数 | 功能 |
|---|---|
| if(value, t, f) | 如果value为true,则返回t,否则返回f |
| ifnull(value1, value2) | 如果value1不为空,返回value1,否则返回value2 |
| case when [val1] then [res1] … else [default] end | 如果val1为true,返回res1,…否则返回default默认值 |
| case [expr] when [val1] then [res1] … else[default] end | 如果expr的值等于val1,返回res1,…否则返回default默认值 |
2.5 窗口函数
2.5.1 介绍
窗口函数可以像聚合函数一样对一组数据进行分析并返回结果,二者的不同指出之处在于,窗口函数不是将一组数据汇总成单个结果,而是为每一行数据都返回一个结果。
窗口函数定义:
窗口函数名称 ([可选的分析字段或表达式]) over(# 分区partition by ...# 排序order by ...# 窗口大小frame_clause
)
-
over 子句用于指定一个数据分析窗口。
-
partition by 类似于 group by,会分别针对每个分区单独进行分析。
-
order by 用于指定分区内数据的排序方式
-
frame_clause 用于指定一个移动的分析窗口,窗口总是位于分区的范围之内,是分区的一个子集。在制定了分析窗口之后,窗口函数不再基于分区进行分析,而是基于窗口内的数据进行分析。
-
指定窗口函数大小的具体选项如下:
{rows | range} frame_start {rows | range} between frame_start and frame_endrow 表示以数据行为单位计算窗口的偏移量,range 表示以数值(10天、5千米等)为单位计算窗口的偏移量
-
frame_start 用于定义窗口的起始位置,包括以下内容:
- unbounded preceding:表示窗口从分区的第一行开始
- n preceding:表示窗口从当前行之前的第n行开始
- current row:表示窗口从当前行开始
-
frame_end 用于定义窗口的结束位置,包括以下内容:
- current row:表示窗口从当前行结束
- n following:表示窗口从当前行之后的第n行结束
- unbounded following:表示窗口到分区的最后一行结束
2.5.2 聚合窗口函数
avg、sum… over()
2.5.3 排名窗口函数
排名窗口函数可以用来获取数据的分类排名,常见的排名窗口函数如下:
| 排名窗口函数 | 描述 |
|---|---|
| row_unmber() | 为分区中的每行数据分配一个系列号,序列号从1开始 |
| rank() | 返回当前行在分区中的名次,如果存在名次相同的数据,后续的排名将会产生跳跃 |
| dense_rank() | 返回当前行在分区中的名次,即使存在名次相同的数据,后续的排名也是连续的 |
| percent_rank() | 以百分比的形式返回当前行在分区中的名次。如果存在名词相同的数据,后续的排名将会产生跳跃 |
| cume_dist() | 计算当前行在分区内的累积分布 |
| ntile(n ) | 将分区内的数据分为n等分,并返回当前行所在的分区位置 |
排名窗口函数不支持动态的窗口大小选项,而是以整个分区作为分析的窗口。
2.5.4 取值窗口函数
取值窗口函数可以用来返回窗口内指定位置的行数据,常见的取值窗口函数如下:
| 取值窗口函数 | 描述 |
|---|---|
| lag() | 返回窗口内当前行之前的第n行数据 |
| lead() | 返回窗口内当前行之后的第n行数据 |
| first_value() | 返回窗口内第一行数据 |
| last_value() | 返回窗口内最后一行数据 |
| nth_value() | 返回窗口内第n行数据 |
相关文章:
【MySQL】函数
文章目录1. DQL执行顺序2. 函数2.1 字符串函数2.2 数值函数2.3 日期函数2.4 流程函数2.5 窗口函数2.5.1 介绍2.5.2 聚合窗口函数2.5.3 排名窗口函数2.5.4 取值窗口函数1. DQL执行顺序 2. 函数 2.1 字符串函数 函数功能concat(s1,s2,…sn)字符串拼接,将s1,s2…sn拼…...
MySQL高级
一、基础环境搭建 环境准备:CentOS7.6(系统内核要求是3.10以上的)、FinalShell 1. 安装Docker 帮助文档 : https://docs.docker.com/ 1、查看系统内核(系统内核要求是3.10以上的) uname -r2、如果之前安装过旧版本的D…...
带你弄明白c++的4种类型转换
目录 C语言中的类型转换 C强制类型转换 static_cast reinterpret_cast const_cast dynamic_cast RTTI 常见面试题 这篇博客主要是帮助大家了解和学会使用C中规定的四种类型转换。首先我们先回顾一下C语言中的类型转换。 C语言中的类型转换 在C语言中,如果赋…...
8个明显可以提升数据处理效率的 Python 神库
在进行数据科学时,可能会浪费大量时间编码并等待计算机运行某些东西。所以我选择了一些 Python 库,可以帮助你节省宝贵的时间 文章目录1、Optuna技术提升2、ITMO\_FS3、Shap-hypetune4、PyCaret5、floWeaver6、Gradio7、Terality8、Torch-Handle1、Optun…...
互联网公司吐槽养不起程序员,IT岗位的工资真是虚高有泡沫了?
说实话,看到这个话题的时候又被震惊到。 因为相比以往,程序员工资近年来已经够被压缩的了好嘛? 那些鼓吹泡沫论的,真就“何不食肉糜”了~~~ 而且这种逻辑就很奇怪, 程序员的薪资难道不是由行业水平决定么ÿ…...
Excel 进阶|只会 Excel 也能轻松搭建指标应用啦
现在,Kyligence Zen 用户可在 Excel 中对指标进行更进一步的探索和分析,能够实现对维度进行标签筛选、对维度基于指标值进行筛选和排序、下钻/上卷、多样化的透视表布局、本地 Excel 和云端 Excel 的双向支持等。业务人员和分析师基于现有分析习惯就可以…...
RabbitMQ中TTL
目录一、TTL1.控制后台演示消息过期2.代码实现2.1 队列统一过期2.2 消息过期一、TTL TTL 全称 Time To Live(存活时间/过期时间)。 当消息到达存活时间后,还没有被消费,会被自动清除。 RabbitMQ可以对消息设置过期时间࿰…...
Ceres简介及示例(4)Curve Fitting(曲线拟合)
文章目录1、Curve Fitting1.1、残差定义1.2、 Problem问题构造1.3、完整代码1.4、运行结果2、Robust Curve Fitting1、Curve Fitting 到目前为止,我们看到的示例都是没有数据的简单优化问题。最小二乘和非线性最小二乘分析的原始目的是对数据进行曲线拟合。 以一个…...
音质最好的骨传导蓝牙耳机有哪些,推荐几款不错的骨传导耳机
骨传导耳机也称为“不入耳式”耳机,是一种通过颅骨、骨迷路、内耳淋巴液和听神经之间的信号传导,来达到听力保护目的的一种技术。由于它可以开放双耳,所以在跑步、骑行等运动时使用十分安全,可以避免外界的干扰。这种耳机在佩戴…...
计算机操作系统安全
操作系统安全是计算机系统安全的重要组成部分,目的是保护操作系统的机密性、完整性和可用性。在当前的网络环境下,操作系统面临着许多威胁,如病毒、木马、蠕虫、黑客攻击等等。为了保护操作系统的安全,需要采取各种措施来防范这些…...
超详细从入门到精通,pytest自动化测试框架实战教程-用例标记/执行(三)
目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 pytest可以通过标记…...
Java SE 基础(5) Java 环境的搭建
Java 虚拟机——JVM JVM (Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都…...
银行数字化转型导师坚鹏:银行对公客户数字化场景营销案例萃取
银行对公客户数字化场景营销案例萃取与行动落地课程背景: 很多银行存在以下问题:不清楚银行数字化营销与场景营销内涵?不知道如何开展对公客户数字化营销工作?不知道对公业务数字化场景营销成功案例? 学员收获&a…...
get和post的区别
1.用途上 get请求用来向服务器获取资源; post请求用来向服务器提交数据; 2.表单提交方式上 get请求直接将表单数据拼接到URL上,多个参数之间通过&符号连接; post请求将表单数据放到请求头或者请求体中; 3.传…...
Java调用Oracle存储过程
文章目录 Java调用Oracle存储过程Java调用Oracle存储过程 使用Java实现存储过程的步骤: 1、数据表、存储过程【已完成】 2、引入依赖包、数据源配置 3、Java实现【已完成】 – Oracle 创建数据表 CREATE TABLE STUDENT ( ID NUMBER (20) NOT NULL ENABLE PRIMARY KEY, NAME V…...
ubuntu如何设置qt环境变量
Qt 是一个1991年由Qt Company开发的跨平台C图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compi…...
高管对谈|揭秘 NFT 技术背后的研发方法论
有人说,元宇宙是未来,NFT 则是通往这个可能的未来的数字通行证。 经过一度热炒之后,NFT 逐渐回归理性的「大浪淘沙」轨迹。NXTF_(廿四未来)正是一家将 NFT 向实体经济靠拢并与之结合的公司。 NXTF_利用区块链技术&am…...
是面试官放水,还是企业实在是缺人?这都没挂,字节原来这么容易进...
“字节是大企业,是不是很难进去啊?”“在字节做软件测试,能得到很好的发展吗?一进去就有9.5K,其实也没有想的那么难”直到现在,心情都还是无比激动! 本人211非科班,之前在字节和腾讯…...
JVM 本地方法栈
本地方法栈的作用 Java虚拟机栈于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。本地方法栈,也是线程私有的。允许被实现成固定或者是可动态扩展的内存大小(在内存溢出方面和虚拟机栈相同) 如果线程请求分配的栈容量超…...
GPT-4老板:AI可能会杀死人类,已经出现我们无法解释的推理能力
来源: 量子位 微信号:QbitAI “AI确实可能杀死人类。” 这话并非危言耸听,而是OpenAI CEO奥特曼的最新观点。 而这番观点,是奥特曼在与MIT研究科学家Lex Fridman长达2小时的对话中透露。 不仅如此,奥特曼谈及了近期围绕ChatGPT…...
告别激活弹窗:KMS_VL_ALL_AIO智能激活工具完全指南
告别激活弹窗:KMS_VL_ALL_AIO智能激活工具完全指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活烦恼吗?每次开机都看到"需要激活"的提…...
Performance-Fish:深度解析《环世界》400%性能优化核心技术
Performance-Fish:深度解析《环世界》400%性能优化核心技术 【免费下载链接】Performance-Fish Performance Mod for RimWorld 项目地址: https://gitcode.com/gh_mirrors/pe/Performance-Fish Performance-Fish 是专为《环世界》(RimWorld&#…...
暗黑3鼠标宏终极指南:D3KeyHelper 5步配置法快速上手
暗黑3鼠标宏终极指南:D3KeyHelper 5步配置法快速上手 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper D3KeyHelper是一款专为暗黑破坏神3玩…...
智慧树自动刷课终极指南:3分钟快速上手Autovisor免费工具
智慧树自动刷课终极指南:3分钟快速上手Autovisor免费工具 【免费下载链接】Autovisor 2025智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor 还在为智慧树网课的手动操作烦恼吗&#…...
DriveBench:面向真实驾驶场景的长序列多智能体交互基准测试框架
1. 项目概述:从“世界基准”到“驾驶基准”的演进如果你在自动驾驶或者计算机视觉领域摸爬滚打过几年,一定对“基准测试”(Benchmark)这个词又爱又恨。爱的是,它提供了一个相对公平的擂台,让不同算法、不同…...
符号链接批量管理工具 linko:声明式配置与自动化实践
1. 项目概述与核心价值最近在折腾一些自动化脚本和工具链,发现一个挺有意思的仓库:monsterxx03/linko。乍一看这个名字,你可能会有点懵,这到底是干嘛的?是链接管理工具,还是某种网络代理的客户端࿱…...
树莓派+Kali Linux+PiTFT打造便携式安全测试平台全攻略
1. 项目概述如果你和我一样,对网络安全和嵌入式硬件都抱有浓厚的兴趣,那么将Kali Linux与树莓派结合,再配上一块小巧的触摸屏,绝对是一个能让你兴奋起来的项目。这不仅仅是把两个热门技术拼在一起,更是打造一个真正便携…...
开源容器镜像仓库cc-hub:从协议兼容到生产部署的完整实践指南
1. 项目概述:一个面向容器化应用的开源镜像仓库最近在整理团队内部的容器镜像管理方案时,我重新审视了开源镜像仓库这个领域。虽然市面上有 Harbor、Docker Registry 等成熟方案,但总有一些场景,比如轻量级内网部署、特定架构&…...
Linux权限继承与umask配置实践
Linux权限继承与umask配置实践很多协作目录问题并不是因为当前权限错了,而是因为新建文件的默认权限总是不符合预期。背后的核心变量之一就是 umask。中级阶段如果不理解默认权限是怎么生成的,就会陷入“每次都手工 chmod”的低效循环。一、默认权限不是…...
基于Stellar的智能体经济安全与效率优化框架解析
1. 项目概述:一个面向智能体经济的安全与效率优化框架最近在探索智能体(Agent)应用生态时,我遇到了一个普遍存在的痛点:如何在一个去中心化、多智能体协作的网络中,既保证交互的安全与可信,又能…...
