使用聚合函数查询
聚合:通俗的讲就是聚集到一起;函数:可以理解为一个方法。那么组合起来我们就可以理解为是一个将某种东西聚集在一起的一个方法。而在MySQL``中这个被聚集的则是一组行中的某个列。
接着,我们来看聚合函数的特点:
- 每个函数接收一个参数(字段名或者表达式);
- 默认情况下,组函数忽略列值为
null
的行,不参与计算; - 不允许出现嵌套 比如
sum(max(xx))
; - 常与
group by
关键字一起使用。(后面章节会讲到);
一个SELECT
子句中可出现多个聚集函数。
COUNT( )函数
任务描述
本关任务:
1.使用COUNT()
函数查询数据表中总数据量,
2.使用COUNT()
函数统计班级总人数。
相关知识
为了完成本关任务,你需要掌握:如何使用COUNT()
函数。
COUNT()函数基本使用
COUNT()
函数是用来统计记录的总条数。select count(*/字段名) from 数据表;
例子说明:
假设我们现在有一张表tb_dept
;内容如下:
id | name | dept_id |
---|---|---|
1 | Nancy | 301 |
2 | Tob | 303 |
3 | Carly | 301 |
我们需要获取整张表有多少条数据,那么我们就可以使用COUNT(*)
来查询了。
那么,现在同样是这张表,我假若想知道301
部门一共有少人,我们可以思考该怎么查询?
相信大家都想到了,我们可以使用where
条件进行查询:
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码:
我们为你提供了一张tb_class
表,内容如下:
id | name | classid |
---|---|---|
1 | Emma | 366 |
2 | Mary | 367 |
3 | Allen | 367 |
4 | Kevin | 367 |
5 | Rose | 366 |
6 | James | 367 |
7 | Hale | 366 |
8 | David | 367 |
根据此表数据:
- 查询该表中一共有多少条数据;
- 查询此表中
367
班有多少位学生,以班级id
和对应人数格式输出。
测试说明
平台会对你编写的代码进行测试:
预期输出:
1 |
|
我的代码
1 |
|
SUM( )函数
任务描述
本关任务:
- 使用
SUM()
函数查询数据表中学生的总成绩; - 使用
SUM()
函数查询语文课程中学生的总成绩。
相关知识
为了完成本关任务,你需要掌握:如何使用SUM()
函数。
SUM()函数基本使用
SUM()
函数是对数据表的某列进行求和操作。select sum(字段名) from 数据表;
例子说明:
现在有一张tb_Salary
表,内容如下:
id | name | Salary | Month |
---|---|---|---|
1 | Nancy | 2300 | 11 |
2 | Tob | 5800 | 11 |
3 | Carly | 3200 | 11 |
4 | Nancy | 2600 | 12 |
5 | Tob | 6300 | 12 |
6 | Carly | 5200 | 12 |
假设场景公司老板想知道公司总共给员工开了多少工资,则可以使用SUM()
函数来进行统计了。
若想得知Tob
同事在11月
和12月
的薪水一共有多少,加上where
条件即可。
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码,我们为你提供了一张tb_class
表,内容如下:
id | name | course | score |
---|---|---|---|
1 | Emma | 语文 | 86 |
2 | Mary | 语文 | 79 |
3 | Allen | 语文 | 92 |
4 | Emma | 英语 | 116 |
5 | Mary | 英语 | 95 |
5 | Allen | 英语 | 100 |
根据此表数据:
- 查询该表中学生的总成绩;
- 查询学生
语文
课程的总分数。
测试说明
平台会对你编写的代码进行测试:
预期输出:
1 |
|
我的代码
1 |
|
AVG( )函数
任务描述
本关任务:使用AVG()
函数查询学生各科目的平均分数。
相关知识
为了完成本关任务,你需要掌握:如何使用AVG()
函数。
AVG()函数基本使用
AVG()
函数是对数据表的某列进行求平均值操作。select avg(字段名) from 数据表;
例子说明:
现在有一张tb_Salary
表,内容如下:
id | name | Salary | Month |
---|---|---|---|
1 | Nancy | 2300 | 11 |
2 | Tob | 5800 | 11 |
3 | Carly | 3200 | 11 |
4 | Nancy | 2600 | 12 |
5 | Tob | 6300 | 12 |
6 | Carly | 5200 | 12 |
假设场景,老板想知道公司发给员工的薪水的平均值为多少,此时就可使用AVG()
函数来计算了。
现在又想知道Nancy
在11-12月份
的薪水平均有多少,则可进行如下查询:
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码,我们为你提供了一张tb_class
表,内容如下:
id | name | course | score |
---|---|---|---|
1 | Emma | 语文 | 86 |
2 | Mary | 语文 | 79 |
3 | Allen | 语文 | 92 |
4 | Emma | 英语 | 116 |
5 | Mary | 英语 | 95 |
5 | Allen | 英语 | 101 |
根据此表数据,查询表中该班级三位同学语文
和英语
课程的平均分数以及对应的课程名。
测试说明
平台会对你编写的代码进行测试:
预期输出:
1 |
|
我的代码
1 |
|
MAX( )函数
任务描述
本关任务:使用MAX()
函数查询各科中的最高分数。
相关知识
为了完成本关任务,你需要掌握:如何使用MAX()
函数。
MAX()函数基本使用
MAX()
函数是求某列的最大数值。select max(字段名) from 数据表;
例子说明:
现在有一张tb_Salary
表,内容如下:
id | name | Salary | Month |
---|---|---|---|
1 | Nancy | 2300 | 11 |
2 | Tob | 5800 | 11 |
3 | Carly | 3200 | 11 |
4 | Nancy | 2600 | 12 |
5 | Tob | 6300 | 12 |
6 | Carly | 5200 | 12 |
假设场景,老板想知道公司在11-12月份
中月薪最高的是多少,此时就可使用MAX()
函数来统计了。
这样就可以看到公司中月薪最高是多少了。我们也可查询Carly
在11-12月份
中月薪最高是多少:
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码,我们为你提供了一张tb_class
表,内容如下:
id | name | course | score |
---|---|---|---|
1 | Emma | 语文 | 86 |
2 | Mary | 语文 | 79 |
3 | Allen | 语文 | 92 |
4 | Emma | 英语 | 116 |
5 | Mary | 英语 | 95 |
6 | Allen | 英语 | 100 |
根据此表数据,分别查询语文
和英语
课程中的最高分数。
测试说明
平台会对你编写的代码进行测试:
预期输出:
1 |
|
我的代码
1 |
|
MIN( )函数
任务描述
本关任务:使用MIN()
函数查询学生在各科中的最低分数。
相关知识
为了完成本关任务,你需要掌握:如何使用MIN()
函数。
MIN()函数基本使用
MIN()
函数是求某列的最小数值。select min(字段名) from 数据表
例子说明:
现在有一张tb_Salary
表,内容如下:
id | name | Salary | Month |
---|---|---|---|
1 | Nancy | 2300 | 11 |
2 | Tob | 5800 | 11 |
3 | Carly | 3200 | 11 |
4 | Nancy | 2600 | 12 |
5 | Tob | 6300 | 12 |
6 | Carly | 5200 | 12 |
假设场景,老板想知道公司11-12月
份中月薪最低的是多少,此时就可使用MIN()
函数来统计了。
我们仍可以快速查出Tob
在11-12月份
中月薪最低时是多少:
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码,我们为你提供了一张tb_class
表,内容如下:
id | name | course | score |
---|---|---|---|
1 | Emma | 语文 | 86 |
2 | Mary | 语文 | 79 |
3 | Allen | 语文 | 92 |
4 | Emma | 英语 | 116 |
5 | Mary | 英语 | 95 |
5 | Allen | 英语 | 100 |
根据此表数据,分别查询语文
和英语
课程中的最低分数。
测试说明
平台会对你编写的代码进行测试:
预期输出:
1 |
|