28. 聚合函数 MIN、MAX
MySQL 的常见的聚合函数有 AVG、COUNT、SUM、MIN、MAX,上一小节介绍了 AVG、COUNT、SUM 三种聚合函数,本小节介绍如何使用 MIN、MAX 两种聚合函数,另外再介绍一下如何在 GROUP BY 中使用聚合函数。
1. MIN 函数取最小值
以 teacher 表为例,先查所有 teacher 信息:
SELECT * FROM teacher;
查询结果如下图:

可以使用 MIN() 函数对结果集取年龄最小值的数据:
SELECT MIN(age) FROM teacher;
执行结果如下图:

如上图所示,MIN(age) 表示对结果集 age 列取最小值 29。
2. MAX 函数取最大值
以 student 表为例,先查看所有 student 信息:
SELECT * FROM student;
查询结果如下图:

可以使用 MAX() 函数对结果集取年龄最大值的数据:
SELECT MAX(age) FROM student;
执行结果如下图:

如上图所示,MAX(age) 表示对结果集 age 列取最大值 23。
3.GROUP BY HAVING
以 student_course、course、student 表内连接查询为例:
SELECT * FROM student_course a INNER JOIN student b ON a.student_id=b.id INNER JOIN course c ON a.course_id=c.id;
查询结果如下图:

使用 AVG 函数取分组数据平均年龄:
SELECT a.course_id,c.course_name,AVG(age) FROM student_course a INNER JOIN student b ON a.student_id=b.id INNER JOIN course c ON a.course_id=c.id GROUP BY a.course_id,c.course_name;
执行结果如下图 :

可以使用 HAVING 对上述结果筛选,例如选出选课学生平均年龄大于 20 的课程数据:
SELECT a.course_id,c.course_name,AVG(age) FROM student_course a INNER JOIN student b ON a.student_id=b.id INNER JOIN course c ON a.course_id=c.id GROUP BY a.course_id,c.course_name HAVING AVG(age) >= 20;
执行结果如下图:

如上图所示,演示的是使用 AVG() 函数对分组数据进行筛选,同理,可以分别使用 COUNT()、MIN()、MAX()、SUM() 这四种聚合函数取出分组的数据,并且都可以使用 HAVING 后面的条件对分组聚合函数的值进行筛选。
4. 小结
本小节介绍了如何使用 MIN、MAX 两种聚合函数对查询结果集进行筛选,还介绍了如何在 GROUP BY 中分组使用聚合函数,并且使用 HAVING 后面的条件对分组数据进行筛选,需要注意的是聚合函数产生的数据列最好重命名,这是因为后端程序语言在处理这些数据时需要规范的字段名,例如:
SELECT AVG(age) AS teacher_avg_age FROM teacher;
查询结果如下图:

以上关于28. 聚合函数 MIN、MAX的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 28. 聚合函数 MIN、MAX

微信
支付宝