用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语句运行截图

用MySQL解析SQL语句里面的分组函数(聚合函数)_第1张图片

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语句运行截图

用MySQL解析SQL语句里面的分组函数(聚合函数)_第2张图片

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

用MySQL解析SQL语句里面的分组函数(聚合函数)_第3张图片

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语句运行截图

用MySQL解析SQL语句里面的分组函数(聚合函数)_第4张图片

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语句运行截图

用MySQL解析SQL语句里面的分组函数(聚合函数)_第5张图片

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语句运行截图

用MySQL解析SQL语句里面的分组函数(聚合函数)_第6张图片

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语句运行截图

用MySQL解析SQL语句里面的分组函数(聚合函数)_第7张图片

你可能感兴趣的:(MySQL学习,mysql,sql,分组函数,求和,记录行数OR求最大值OR最小值)