MySQL 学习笔记 025(聚合函数及分组过滤)

内容来自B站【狂神说Java】MySQL最新教程通俗易懂

聚合函数

函数 秒速
COUNT() 计数
SUM() 求和
AVG() 平均值
MAX() 最大值
MIN() 最小值
...
/*
以下三种都能够统计表中的数据,但是有区别
*/
SELECT COUNT(studentName) FROM student; -- COUNT(字段),会忽略所有的null值,如果列是主键,效率比 COUNT(1) 高,如果列不是主键,效率比 COUNT(1) 低
SELECT COUNT(*) FROM student; -- COUNT(*),不会忽略null值,本质计算行数,效率上和 COUNT(1) 基本没有差别
SELECT COUNT(1) FROM student; -- COUNT(1),不会忽略null值,本质计算行数

SELECT SUM(studentResult) AS 总和 FROM result;
SELECT AVG(studentResult) AS 平均分 FROM result;
SELECT MAX(studentResult) AS 最高分 FROM result;
SELECT MIN(studentResult) AS 最低分 FROM result;

分组和过滤

-- 查询不同课程的平均分,最高分,最低分,且平均分大于 100
SELECT subjectName AS 课程, AVG(studentResult) AS 平均分, MAX(studentResult) AS 最高分, MIN(studentResult) AS 最低分
FROM result r
INNER JOIN subject s ON r.SubjectNo = s.SubjectNo
GROUP BY r.SubjectNo
HAVING 平均分 > 100;  -- 通过什么字段来分组
posted @ 2022-02-15 22:30  君子键  阅读(24)  评论(0)    收藏  举报