使用聚合函数查询【educoder】+笔记+答案

250 阅读4分钟

文章目录

前言

前面我们学了对表单的简单查询,接下来将学习使用聚合函数对表单查询,
我们可以拆分来看,聚合:通俗的讲就是聚集到一起;函数:可以理解为一个方法。那么组合起来我们就可以理解为是一个将某种东西聚集在一起的一个方法。而在MySQL中这个被聚集的则是一组行中的某个列。
接着,我们来看聚合函数的特点:

每个函数接收一个参数(字段名或者表达式);

默认情况下,组函数忽略列值为null的行,不参与计算;

不允许出现嵌套 比如sum(max(xx));

常与group by关键字一起使用。(后面章节会讲到);

一个SELECT子句中可出现多个聚集函数。

一:count()函数

COUNT()函数是用来统计记录的总条数。
语法:
select count(*/字段) from 表名;
编程要求
根据提示,在右侧编辑器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和对应人数格式输出。

USE School;

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

########## 查询该表中一共有多少条数据 ##########

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

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

二:sum()函数

SUM()函数是对数据表的某列进行求和操作。
语法:
select sum(字段) from 表名;
编程要求
根据提示,在右侧编辑器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
根据此表数据:
查询该表中学生的总成绩;
查询学生语文课程的总分数。

USE School;

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

########## 查询所有学生总分数 ##########

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

select course,sum(score) from tb_class where course="语文";

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

三:AVG()函数

AVG()函数是对数据表的某列进行求平均值操作。
语法:
select avg(字段名) from 数据表;
编程要求
根据提示,在右侧编辑器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
根据此表数据,查询表中该班级三位同学语文和英语课程的平均分数以及对应的课程名。

USE School;

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

########## 查询学生语文科目的平均分数 ##########

select course,avg(score) from tb_class where course="语文";

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


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

四:max()函数

MAX()函数是求某列的最大数值。
语法规则:
select max(字段名) from 数据表;
编程要求
根据提示,在右侧编辑器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
根据此表数据,分别查询语文和英语课程中的最高分数。

USE School;

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

########## 查询语文课程中的最高分数 ##########

select course,max(score) from tb_class where course="语文";

########## 查询英语课程中的最高分数 ##########

select course,max(score) from tb_class where course="英语";

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

五:min()函数

MIN()函数是求某列的最小数值。
语法规则:
select min(字段名) from 数据表;
编程要求
根据提示,在右侧编辑器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
根据此表数据,分别查询语文和英语课程中的最低分数。

USE School;

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

########## 查询语文课程中的最低分数 ##########

select course,min(score) from tb_class where course="语文";

########## 查询英语课程中的最低分数 ##########

select course,min(score) from tb_class where course="英语";

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

小结

用聚合函数求一组行中某个列
语法规则全为 select 函数名(字段名) from 表名;
有其他要求则用where筛选