本人已参与「新人创作礼」活动,一起开启掘金创作之路。
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情
目录
今天阿文介绍的内容:
- 什么是
聚合函数? - COUNT()函数
- SUM()函数
- AVG()函数
- MAX()函数
- MIN()函数
使用集合函数查询
在MySQL中,提供一些能够对获取的数据进行分析和汇总报告的查询函数,它们的合称为聚合函数。
| 函数 | 作用 |
|---|---|
| AVG() | 返回某列的平均值 |
| COUNT() | 返回某列的行数 |
| MAX() | 返回某列的最大值 |
| MIN() | 返回某列的最小值 |
| SUM() | 返回某列值的和 |
1.COUNT()函数
COUNT()函数使用方法有两种:
- COUNT(*)计算表中总的函数,不管某列是否有数值或者为空值
- COUNT(字段名)计算指定列下总的行数,计算时忽略空值的行
1.1代码演示
1.1.1查询employy表中总的行数
SELECT COUNT(*) AS Total FROM employee;
查询结果如下图:
1.1.2查询employee表id列的总的行数
SELECT COUNT(id) AS idTotal FROM employee;
查询结果如下图:
提示:两种查询方式对待NULL值是不同的,查询表中所有行数时,是计算NULL值的,而单独查询单列时,是忽略NULL值的。在之前所介绍的分组查询时,COUNT()可以计算每一个分组的数量。
2.SUM()函数
SUM()函数是一个求总和的函数,返回指定列值的总和。
2.1代码演示
2.1.1查询employee表salary列的总数
SELECT SUM(salary) AS Total FROM employee;
查询结果如下图:
2.1.2与GROUP BY一起使用
SELECT deptId,SUM(salary) AS Total FROM employee GROUP BY deptId;
查询结果如下图:
与GROUP BY一起使用时,SUM()函数返回的是每组salary的总和。
提示: SUM()函数在计算时,忽略列值为NULL的行
3.AVG()函数
AVG()函数是一个求指定列数据的平均值。
3.1代码演示
3.1.1查询employee表salary列的平均值
SELECT AVG(salary) AS Average FROM employee;
查询结果如下图:
3.1.2与GROUP BY一起使用
SELECT deptId,AVG(salary) AS Average FROM employee GROUP BY deptId;
查询结果如下图:
与GROUP BY一起使用时,AVG()函数返回的是每组salary的平均值。
提示: AVG()函数使用时只能对一列进行求平均,如需要得到多个列的多个平均值,需要在每一列上使用AVG()函数。
4.MAX()函数
MAX()函数是返回指定列中的最大值。
4.1代码演示
4.1.1查询employee表中salary列的最大值
SELECT MAX(salary) FROM employee;
查询结果如图:
4.1.2与GROUP BY一起使用
SELECT deptId,MAX(salary) AS MaxSalary FROM employee GROUP BY deptId;
查询结果如图:
在GROUP BY一起使用时,MAX()函数返回的是每组salary的最大值。
提示:MAX()函数不仅可以用来返回最大的列值和日期值,还可以返回字符类型的最大值。字符类型比较按照ASCII码值的大小比较。
5.MIN()
MIN()函数是返回指定列中的最大值。
5.1代码演示
5.1.1查询employee表中salary列的最大值
SELECT MIN(salary) FROM employee;
查询结果如图:
5.1.2与GROUP BY一起使用
SELECT deptId,MIN(salary) AS MaxSalary FROM employee GROUP BY deptId;
查询结果如图:
在GROUP BY一起使用时,MIN()函数返回的是每组salary的最小值。
提示:MIN()函数与MAX()函数类似,不仅适用于查找数值类型,也可应用于字符类型。
总结
- MySQL提供了多种聚合供我们使用,使得我们可以完成各种操作,并且常与GROUP BY关键字一起使用
好了,今天阿文就介绍到这了... byebye