一、前言
本文将讲述有关于聚合函数的知识点以及会使用到聚合函数的分组查询
二、聚合函数
1.概述
将一列数据作为一个整体,进行纵向计算
2.常见聚合函数
函数 | 功能 |
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
3.语法
SELECT 聚合函数(字段列表) FROM 表名;
4.COUNT函数
我们给定一张表,并使用SQL语句查询表格中包含的城市数量
SELECT COUNT(Country) from Student;
Student
Name | Country | Age |
张三 | 上海 | 19 |
李四 | 上海 | 21 |
王某某 | NULL | 21 |
老六 | 北京 | 20 |
老七 | 南京 | 21 |
赵某某 | 北京 | 23 |
老某某 | NULL | 19 |
查询结果如下
5.MAX、MIN函数
我们给定一张表,运用max函数查询年龄的最大值
SELECT MAX(Age) from Student;
结果如下
6.AVG函数
我们给定一张表,运用max函数查询年龄的平均值
SELECT AVG(Age) from Student;
7.SUM函数
我们给定一张表,运用SUM函数求年龄值的和
SELECT SUM(Age) from Student;
三、分组查询
1.语法
SELECT 字段列表 FROM [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
2.WHERE 和 HAVING 区别
- 时机不同:WHERE在分组前过滤,不满足条件不参与分组;HAVING在分组后过滤
- 判断条件不同:WHERE不能对聚合函数进行判断,但HAVING可以
3.实例
(1)根据性别分组,统计男学生和女学生的数量
- 根据性别分组:
GROUP BY Gender
- 统计数量:
COUNT(*)
- 统计男学生、女学生数量:
SELECT Gender,COUNT(*)
SELECT Gender,COUNT(*) from Student GROUP BY Gender;
(2)根据性别分组,统计男性员工和女生员工的平均年龄
- 根据性别分组:
GROUP BY Gender
- 统计平均年龄:
AVG(age)
- 统计男学生、女学生数量:
SELECT Gender,AVG(age)
SELECT Gender,AVG(Age) from Student GROUP BY Gender;
四、注意事项
1.执行顺序
WHERE > 聚合函数 > HAVING
2.分组后的查询
查询字段一般为聚合函数和分组函数字段,查询其它字段无任何意义
五、结语
下一篇文章将讲述排序查询有关知识点