用MySQL解析SQL语句里面的分组函数(聚合函数)

用MySQL解析SQL语句里面的分组函数(聚合函数)

1 前提

分组函数就是需要分组后才能使用的函数,若默认没有写分组(group up),那么就会默认该表里面的所有数据行当成一组

书写分组函数的位置: SELECT子句子查询语句(括号里头)、GROUP BY子句HAVING子句ORDER BY子句

分组函数又称为多行函数,指的是它要同时对多行操作,然后只返回一行的数据

而单行函数就是每次只对一行操作,操作一行完成后,每次就返回一行的数据,例如 ifnull(可能有null值的字段,0);

所有的分组函数都会剔除null然后再进行汇总查询/计算

2 作用

对数据进行查询汇总/计算

3.1 COUNT函数

3.1.1 核心点

记录表中有多少条数据

若传入的实参是*,则记录该表一共有多少条数据(含null值)

若传入的实参是字段,则记录表中有多少条有效数据(不含null值)

3.1.2 传入的实参是*
a 语法
SELECT count(*)
FROM 表名;
b 示例sql语句
SELECT count(*)
FROM student01;
/*
  记录该表一共有多少条数据行,这样的结果里面是包含null值的
*
/
c 示例sql语句运行截图

在这里插入图片描述

3.1.3 传入的实参是字段
a 语法
SELECT count(字段)
FROM 表名;
/*
若传入的字段是被PRIMARY KEY修饰的字段,那么也可以得到该表一共有多少条数据(某些字段含null值)
一个数据表一定会有一个主键的,所以这个方案是可行的
若传入的字段没有被PRIMARY KEY修饰,且该字段有null值,那么可以得到该表一共有多少条有效数据(不含null)
*/
b 查询所有数据行(某些字段有null值)的示例sql语句
SELECT count(name)
FROM student01;
c 查询所有数据行(某些字段有null值)的示例sql语句运行截图

在这里插入图片描述

d 查询有效数据行(该字段不含null)的示例sql语句
SELECT count(age)
FROM student01;
f 查询有效数据行(该字段不含null)的示例sql语句运行截图

在这里插入图片描述

3.2 SUM函数

3.2.1 核心

计算当前数据表中所有非空数据的和

本质就是求和,只不过是剔除了字段值为null的数据

因为null值参与运算的结果永远都是null,不会有第二种可能性的

3.2.2 语法
 SELECT sum(需要求和的字段)
 FROM 表名;
 /*
 需要求和的字段的数据类型为数值型
 */
3.2.3 示例sql语句
 SELECT sum(age)
 FROM student01;
3.2.4 示例sql语句运行截图

在这里插入图片描述

3.3 AVG函数

3.3.1 核心

计算当前数据表中所有非空数据的平均值

本质就是求平均值,只不过是剔除了字段值为null的数据

因为null值参与运算的结果永远都是null,不会有第二种可能性的

3.3.2 语法
SELECT AVG(需要求平均数的字段)
FROM 表名;
/*
 需要求平均数的字段的数据类型为数值型
 */
3.3.3 示例sql语句
SELECT AVG(age)
FROM student01;
3.3.4 示例sql语句运行截图

在这里插入图片描述

3.4 MAX函数

3.4.1 核心

找到当前数据表中所有非空数据中的最大值

本质就是查找最大值,只不过是剔除了字段值为null的数据

null值是不会参与查找的

3.4.2 语法
SELECT MAX(需要找到最大值的字段)
FROM 表名;
/*
 需要找到最大值的字段应该为数值型
 */
3.4.3 示例sql语句
SELECT MAX(age)
FROM student01;
3.4.4 示例sql语句运行截图

在这里插入图片描述

3.5 MIN函数

3.5.1 核心

找到当前数据表中所有非空数据中的最小值

本质就是查找最小值,只不过是剔除了字段值为null的数据

null值是不会参与查找的

3.5.2 语法
SELECT MIN(需要找到最小值的字段)
FROM 表名;
/*
 需要找到最小值的字段应该为数值型
 */
3.5.3 示例sql语句
SELECT MIN(age)
FROM student01;
3.5.4 示例sql语句运行截图

在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSS4362

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值