使用聚合函数查询

聚合:通俗的讲就是聚集到一起;函数:可以理解为一个方法。那么组合起来我们就可以理解为是一个将某种东西聚集在一起的一个方法。而在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

根据此表数据:

  1. 查询该表中一共有多少条数据;
  2. 查询此表中367 班有多少位学生,以班级id和对应人数格式输出。

测试说明

平台会对你编写的代码进行测试:

预期输出:

1
2
3
4
count(*)
8
classid count(*)
367 5

我的代码

1
2
3
4
5
6
7
8
9
10
11
12
USE School;

#请在此处添加实现代码
########## Begin ##########

########## 查询该表中一共有多少条数据 ##########
select count(*) from tb_class;

########## 查询此表中367班有多少位学生 ##########
select classid ,count(*) from tb_class where classid = 367;

########## End ##########

SUM( )函数

任务描述

本关任务:

  1. 使用SUM()函数查询数据表中学生的总成绩;
  2. 使用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. 查询该表中学生的总成绩;
  2. 查询学生语文课程的总分数。

测试说明

平台会对你编写的代码进行测试:

预期输出:

1
2
3
4
sum(score)
568
course sum(score)
语文 257

我的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
USE School;

#请在此处添加实现代码
########## Begin ##########

########## 查询所有学生总分数 ##########
select sum(score) from tb_class;

########## 查询学生语文科目的总分数 ##########
select course,sum(score) from tb_class where course='语文';


########## End ##########

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()函数来计算了。

现在又想知道Nancy11-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
2
3
4
course     avg(score)
语文 85.66666666666667
course avg(score)
英语 104

我的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
USE School;

#请在此处添加实现代码
########## Begin ##########

########## 查询学生语文科目的平均分数 ##########
select course,avg(score) from tb_class where course = '语文';


########## 查询学生英语科目的平均分数 ##########
select course,avg(score) from tb_class where course = '英语';


########## End ##########

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()函数来统计了。

这样就可以看到公司中月薪最高是多少了。我们也可查询Carly11-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
2
3
4
course    max(score)
语文 92
course max(score)
英语 116

我的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
USE School;

#请在此处添加实现代码
########## Begin ##########

########## 查询语文课程中的最高分数 ##########
select course,max(score) from tb_class where course = '语文';


########## 查询英语课程中的最高分数 ##########
select course,max(score) from tb_class where course = '英语';


########## End ##########

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()函数来统计了。

我们仍可以快速查出Tob11-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
2
3
4
course    min(score)
语文 79
course min(score)
英语 95