Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何轻松地解决Mysql函数难题?学习视频限时免费领!

如何轻松地解决Mysql函数难题?学习视频限时免费领!

作者头像
CDA数据分析师
发布于 2021-02-08 03:15:20
发布于 2021-02-08 03:15:20
68700
代码可运行
举报
文章被收录于专栏:CDA数据分析师CDA数据分析师
运行总次数:0
代码可运行

你在工作过程中,有没有遇到函数难题?

要知道,数据库中函数实在太多了,每个去都学习的话,成本的确有点高。但其实,常用的函数就那些。

今天我们给你整理了常用函数及示例,希望对你有所帮助。

一、字符串函数

CONCAT(str1,str2,...) # 把多个文本字符串合并成一个长字符串()

示例:

SUBSTRING ( expression, start[,length]) # 截取字符串,第三个参数可以省略,表示截取剩余所有字符。

示例:

TRIM(str) # 返回删除了两边空格的字符串str

示例:

REPLACE(str,from_str,to_str) # 用字符串to_str替换字符串str中的子串from_str并返回

示例:

二、日期时间函数

基础函数有:

DATE(date),YEAR(date),MONTH(date),DAY(date),HOUR(datetime)

这里重点介绍日期时间进行加减运算和时间戳

DATE_ADD(date,interval expr type)

示例:

DATE_SUB(date,interval expr type)

示例:

TIMESTAMPDIFF(type,expr1,expr2) # 返回起始日expr1和结束日expr2之间的时间差整数

示例:

日期202-01-02至2020-3-22相差2个月

UNIX_TIMESTAMP([date]) # 返回一个unix时间戳(从'1970-01-01 08:00:00'开始的秒数

示例:

FROM_UNIXTIME(unix_timestamp) # 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的值

示例:

三、分组合并函数(文本聚合函数)

GROUP_CANCAT([distinct] str [order by strasc/desc] [separator]) #将group by产生的同一个分组中的值连接起来,返回一个字符串结果

示例:

查询每个部门的员工姓名

四、开窗函数(重点)

Mysql8.0版本才支持开窗函数,也可以叫做数据分析函数, 开窗函数的本质还是聚合运算,只不过它更具灵活性,它对数据的每一行,都使用与该行相关的行进行计算并返回计算结果。

语法:

开窗函数的一个概念是当前行,当前行属于某个窗口,窗口由over关键字来指定函数执行的窗口范围。如果后面括号中什么都不写,则意味着窗口包含满足where条件的所有行,开窗函数基于所有行进行计算;如果不为空,则有三个参数来设置窗口:

partition by子句:按照指定字段进行分区,两个分区由边界分隔,开窗函数在不同的分区内分别执行,在跨越分区边界时重新初始化。

order by子句:按照指定字段进行排序,开窗函数将按照排序后的记录顺序进行编号。可以和partitionby子句配合使用,也可以单独使用。

frame子句:当前分区的一个子集,用来定义子集的规则,通常用来作为滑动窗口使用。

示例1:有个员工表emp,查询所有员工的平均工资

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select *,avg(sal) over() 所有员工平均工资 from emp;
#当over中没有指定分区、排序和滑动窗口时,将整个表作为一个区,默认计算的是平均工资

示例2 查询各部门平均工资

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select *,avg(sal) over(partition by deptno) 部门平均工资 from emp;
#当over中指定了分区,但是没有指定排序和滑动窗口时,默认计算的是当前分区内的平均工资

示例3 开窗函数滑动窗口求移动平均工资

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#实现效果是 部门分区后 当前行的前一行和后一行求平均工资  (相当于移动求平均工资)  
select *,avg(sal) 
over(partition by deptno order by hiredate rows between 1 preceding and 1 following) as 移动平均工资
from emp;

从上述示例中可以看到开窗函数和普通聚合函数的区别:

  • 聚合函数是将多条记录聚合为一条;而开窗函数是每条记录都会执行,有几条记录执行完还是几条。
  • 聚合函数也可以用于开窗函数中。

实际工作中,还有比较多常用开窗函数,动态窗口函数有first_value(), last_value(), nth_value()等,其实基本语法都差不多,如果遇到业务需求再网上查找帮助文档让你事半功倍。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CDA数据分析师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL-函数
Select count(*) | count(列名) from table_name [WHERE where_definition]
用户9615083
2022/12/25
7210
MySQL-函数
【MySQL 系列】MySQL 函数篇
函数是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在 MySQL 中已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。
栗筝i
2024/03/19
3070
【MySql】聚合函数&&group by&&OJ题目
MySQL中的聚合函数用于对数据进行计算和统计,常见的聚合函数包括下面列举出来的聚合函数:
平凡的人1
2023/10/15
2130
【MySql】聚合函数&&group by&&OJ题目
快速学习-Hive查询
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Select 查询语句语法:
cwl_java
2020/02/21
1.9K0
快速学习-Hive查询
【MySQL数据库】MySQL聚合函数、时间函数、日期函数、窗口函数等函数的使用
        MySQL数据库中提供了很丰富的函数,比如我们常用的聚合函数,日期及字符串处理函数等。SELECT语句及其条件表达式都可以使用这些函数,函数可以帮助用户更加方便的处理表中的数据,使MySQL数据库的功能更加强大。本篇文章主要为大家介绍几类常用函数的用法。本期我们将介绍MySQL函数,帮助你更好使用MySQL。
小小程序员
2023/02/24
5.2K0
【MySQL数据库】MySQL聚合函数、时间函数、日期函数、窗口函数等函数的使用
DorisSQL与MySQL函数与语法对照差异篇
doris执行异常:[Err] 1064 - errCode = 2, detailMessage = cannot combine SELECT DISTINCT with aggregate functions or GROUP BY
小晨说数据
2022/11/18
5.4K0
Oracle 函数大全[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154754.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/07
2.9K0
Oracle 函数大全[通俗易懂]
【MySQL数据库】MySQL聚合函数、时间函数、日期函数、窗口函数等函数的使用
目录 前言 MySQL函数 聚合函数 数学函数 字符串函数 日期函数 控制流函数 窗口函数 序号函数 开窗聚合函数- SUM,AVG,MIN,MAX 前后函数 lag lead 首尾函数first_v
小小程序员
2022/12/15
5.3K0
【MySQL数据库】MySQL聚合函数、时间函数、日期函数、窗口函数等函数的使用
Oracle学习笔记:oracle+110个常用函数
1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2. CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual; ZH C -- - 赵 A 3. CONCAT 连接两个字符串; SQL> select concat(010-,88888888)||转23 高乾竞电话from dual; 高乾竞电话 ---------------- 010-88888888转23 4. INITCAP 返回字符串并将字符串的第一个字母变为大写; SQL> select initcap(smith) upp from dual; UPP ----- Smith 5.INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的开始位置,默认为1 J 出现的位置,默认为1 SQL> select instr(oracle traning,ra,1,2) instring from dual; INSTRING --------- 9 6.LENGTH 返回字符串的长度; SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal))from gao.nchar_tst; NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL)) ------ ------------ ---------------- ------------ ----------------------------- 高乾竞 3 北京市海锭区 69999.99 7 7.LOWER 返回字符串,并将所有的字符小写 SQL> select lower(AaBbCcDd)AaBbCcDd from dual; AABBCCDD -------- aabbccdd 8.UPPER 返回字符串,并将所有的字符大写 SQL> select upper(AaBbCcDd) upper from dual; UPPER -------- AABBCCDD 9.RPAD和LPAD(粘贴字符) RPAD 在列的右边粘贴字符 LPAD 在列的左边粘贴字符 SQL> select lpad(rpad(gao,10,*),17,*)from dual; LPAD(RPAD(GAO,1 ----------------- *******gao******* 不够字符则用*来填满 10.LTRIM和RTRIM LTRIM 删除左边出现的字符串 RTRIM 删除右边出现的字符串 SQL> select ltrim(rtrim( gao qian jing , ), ) from dual; LTRIM(RTRIM( ------------- gao qian jing 11.SUBSTR(string,start,count) 取子字符串,从start开始,取count个 SQL> select substr(13088888888,3,8) from dual; SUBSTR( -------- 08888888 12.REPLACE(string,s1,s2) string 希望被替换的字符或变量 s1 被替换的字符串 s2 要替换的字符串 SQL> select replace(he love you,he,i) from dual; REPLACE(H ---------- i love you 13.SOUNDEX[g1] 返回一个与给定的字符串读音相同的字符串 SQL> create table table1(xm varchar(8)); SQL> insert into table1 values(weather); SQL> insert into table1 values(wether); SQL> insert into table1 values(gao); SQL> select xm from table1 where soundex(xm)=soundex(weather); XM -------
用户1289394
2021/02/05
4910
Java补充之MySQL入门必备知识
mysql5.5 mysql5.6 mysqI5.7(稳定) mysql8 更高版本
timerring
2023/05/24
1.5K0
Java补充之MySQL入门必备知识
2-SQL语言中的函数
出现在其他语句中的select语句,称为子查询或内查询 外部出现的查询语句,称为主查或外查询
Ywrby
2022/10/27
2.8K0
mysql函数
MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。例如,字符串连接函数可以很方便的将多个字符串连接在一起。在这一讲中将讲解的内容包括:
用户9184480
2024/12/19
970
mysql函数
大数据技术之_08_Hive学习_03_查询+函数
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Select 查询语句语法:
黑泽君
2019/03/11
1.9K0
大数据技术之_08_Hive学习_03_查询+函数
PostgreSQL 数据库中的窗口函数
一个窗口函数在一系列与当前行有某种关联的表行上执行一种计算。这与一个聚集函数所完成的计算有可比之处。但是窗口函数并不会使多行被聚集成一个单独的输出行,这与通常的非窗口聚集函数不同。取而代之,行保留它们独立的标识。在这些现象背后,窗口函数可以访问的不仅仅是查询结果的当前行。
beginor
2020/08/07
1.8K0
Oracle分析函数
说明: (1)over( ):开窗函数 (2)分区子句:partition by 字段 (3)排序子句:order by 字段 (4)开窗子句:三种开窗方式:rows、range、Specifying;使用开窗子句时一定要有排序子句 (5)分析函数是专门解决复杂报表统计,在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值。
程裕强
2022/05/06
7500
Oracle分析函数
【数据库设计和SQL基础语法】--查询数据--聚合函数
聚合函数是一类在数据库中用于对多个行进行计算并返回单个结果的函数。它们能够对数据进行汇总、统计和计算,常用于提取有关数据集的摘要信息。聚合函数在 SQL 查询中广泛应用,包括统计总数、平均值、最大值、最小值等。
喵叔
2023/12/18
6340
MYSQL数据库-基本操作
MYSQL数据库-基本操作 零、前言 表的增删改查 一、Create 1、插入 2、更新和替换 二、Retrieve 1、SELECT 查询 2、WHERE 条件 3、结果排序 4、筛选分页结果 三、Update 四、Delete 1、删除数据 2、截断表 五、插入查询结果 六、聚合函数 七、group by 零、前言 本章主要讲解表的基本操作 表的增删改查 CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除) 一、Create 创建语法:
用户9645905
2022/11/15
9840
MYSQL数据库-基本操作
MySQL数据库函数、DCL详解(及备份恢复操作)
MySQL中的函数 <1> 加密函数 password(str) - 该函数可以对字符串str进行加密,一般情况下,此函数给用户密码进行加密 - select password('ruochen666'); - select PASSWORD(ename) from emp; md5(str) - 对字符串str进行散列加密,可用户对于一些普通的不需要解密的数据进行加密 - select MD5('ruochen666'); - select MD5(ename) from emp;
ruochen
2021/02/16
8970
MySQL数据库函数、DCL详解(及备份恢复操作)
Oracle数据库学习笔记 (四 —— select 从入门到放弃 【下】)
Oracle 数据库查询专题 (select * from emmmm 80 T)
Gorit
2021/12/09
1.2K0
MySQL表的增删查改
values左侧为表中属性,右侧为自定义插入的内容,左右两侧安装顺序是一一对应的,如果顺序不同就会导致类型不同而出错。
每天都要进步呀
2023/10/16
3050
MySQL表的增删查改
相关推荐
MySQL-函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验