我们经常需要汇总数据而不用把它们实际检索出来,为此MySQL提供了专门的函数。聚合函数一种函数,它对一组行中的某个列执行计算,并返回单个值。聚合函数对一组值执行计算并返回单一的值。所有的聚合函数都具有确定性。MySQL查询可用于检索数据,以便分析和报表生成。例如确定表中行数(或者满足某个条件或包含某个特定值的行数);获得表中行组的和;找出表列(或所有行或某些特定的行)的最大值、最小值和平均值,都可以使用聚合函数。
注意:上述例子都需要对表中数据汇总,而不是实际数据本身汇总。
下面介绍五个常用的聚集函数
1.AUG()函数
AVG()通过对表中行数计数并计算特定列值之和,求得该列的平均值。
既可用来返回所有列的平均值,也可以用来返回特定列或行的平均值。
示例:用AUG()计算students表中成绩score
输入 SELECT AVG(stud_score) AS avg_score
FROM students;
输出 avg_score
86
注意:AVG()只用于单个列,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。
2.COUNT()函数
COUNT()函数用于进行计数,对于返回的结果集一行一行地判断。可利用COUNT()确定表中行的数目或符合特定条件的行的数目。两个使用方法如下:
- COUNT(*) 对表中的数目进行计数,不管表列中包含的是空值还是非空值(这里不会把全部字段取出来,而是专门做了优化,不取值)
- COUNT(column)对特定列进行计数,忽略空值。
示例:求students表中学生数量
输入 SELECT COUNT(*) AS num_stud
FROM students;
输出 num_stud
28
3.MAX()函数
MAX()返回指定列中的最大值。MAX()需要求指定列名。
示例:求students表中score的最大值
输入 SELECT MAX(stud_score)
FROM students;
输出 max_score
100
4.MIN()函数 返回指定列中的最小值,基本与上用法相同,这里不赘述
注:MIN()和MAX()都自动忽略NULL值。
5.SUM()函数
SUM()用来查找各种记录的一个字段值的和,也可以用来合计计算值。
示例:求students表中所有同学分数总和
输入 SELECT SUM(stud_score) AS sum_score
FROM students;
输出 sum_score
2408