浅学mysql常用的聚合函数、group by 、having的使用
目录
2.1 从执行结果看 count(*)和count(字段名)和count(1)的区别
1、AVG() 返回某字段的平均值
例:查询班级表中学生的平均年龄
2、COUNT()返回对应条件的总数
例:查询班里有几个女生
2.1 从执行结果看 count(*)和count(字段名)和count(1)的区别
- count(*),计算表中总的行数,包括空行
- count(字段名),计算指定列下总行数,忽略空值的行
- count(1),计算表中总的行数,包括空行
如下成绩表
- count(*)总行数包括空行是7
- count(english)非空值的行数,是5
- count(1),也是7
3、MAX()返回某列的最大值
例:查询英语分数最高分
4、MIN()返回某列的最小值
例:查询英语分数最低分
5、SUM()返回某列值的和
例:查询班级英语总分
6、group by 分组查询
GROUP BY 语句根据一个或多个列对结果集进行分组,我们通常配合 聚合函数COUNT, SUM, AVG等一起使用。
如下学生表
- 例:查询每个班级学生的平均年龄
- 例:统计每个班有几个学生的年龄小于18岁
7、HAVING
HAVING用于分组后的再次筛选
- 例:查询学生平均年龄大于17岁的班级,并按平均年龄升序排序
思路
- 先分组查每个班学生的平均年龄
- 再筛选平均年龄大于17岁的班级
- 再按平均年龄升序排序