系列文章目录
🌈座右铭🌈:人的一生这么长、你凭什么用短短的几年去衡量自己的一生!
💕个人主页:清灵白羽 漾情天殇_计算机底层原理,深度解析C++,自顶向下看Java-CSDN博客
❤️相关文章❤️:清灵白羽 漾情天殇-CSDN博客
文章目录
前言
二、SUM()函数
三、AVG()函数
四、MAX()函数
五、MIN()函数
六、Group By字句
总结
前言
函数 | 声明 |
COUNT([DISTINCT] expr)
|
返回查询到的数据的 数量
|
SUM([DISTINCT] expr)
|
返回查询到的数据的 总和,不是数字无意义
|
AVG([DISTINCT] expr)
|
返回查询到的数据的 平均值,不是数字无意义
|
MAX([DISTINCT] expr)
|
返回查询到的数据的 最大值,不是数字无意义
|
MIN([DISTINCT] expr)
|
返回查询到的数据的 最小值,不是数字无意义
|
一、COUNT()函数
在进行函数讲解之前为了方便操作,我们需要先建立一张表单,如图所示:
这里的class_id我与另外一张表建立了外键关系,大家可以先不用关注哈,如果有对于外键也就是数据库约束方面的知识有不了解的地方,请先浏览我之前的文章。我们继续。
我们可以统计一下这个班级有多少同学:
select count(*) from student;
统计一下,数学成绩有多少个:
这就是计算一下查询到数据的总量的函数,用法简单明了。
二、SUM()函数
顾名思义,这个函数是用来统计数据值的总和的,比如我们可以查询一下全班数学的总成绩:
select sum(math) from student;
我们也可以和条件查询进行绑定,例如查询一下数学不及格同学的总成绩:
select sum(math) from student where sum math < 60;
我的这张表当中并没有数学不及格的同学,所以结果显示为空,大家可以自行插入数据。
不过我在这里要强调一下函数名和后面的括号之间是不可以有空格的,而且括号里面必须是数字才有意义。
三、AVG()函数
对于班级成绩求总分往往是没有意义的,我们通常要求平均成绩,这个时候就需要用到AVG函数,我们可以求一求一个班级当中的数学平均成绩:
select avg(math) from student;
我们来求一下总分的平均成绩:
select avg(math + english + chinese) from student;
四、MAX()函数
返回英语成绩的最高分:
select max(english) from student;
五、MIN()函数
返回数学成绩的最低分:
select min(math) from student;
我们加入条件查询,查询60分以上的数学成绩的最低分:
select min(math) from student where math > 60;
六、Group By字句
这里为大家补充一个非常重要的知识点,Group By字句也就是分组查询,在这之前我们需要建立一张表单,如图所示:
之后我们插入数据:
insert into staff(name,role,salary) values -> ('马云','服务员', 1000.20), -> ('马化腾','游戏陪玩', 2000.99), -> ('孙悟空','游戏角色', 999.11), -> ('猪无能','游戏角色', 333.5), -> ('沙和尚','游戏角色', 700.33), -> ('隔壁老王','董事长', 12000.66);
代码就给大家附在这里了,又需要的话可以自行粘贴哈。
建立好表单之后,我们来查询一下每个角色的最高工资、最低工资和平均工资:
这个时候查询好的数据就会按照任务角色来进行分组。
当然我们也可以按照姓名来进行分组,如图所示:
在SQL中,使用GROUP BY子句进行分组查询时,需要满足SELECT指定的字段必须是“分组依据字段”的原因是因为GROUP BY子句将结果集按照指定的字段值进行分组,而非分组依据字段的其他字段可能具有多个不同的取值。如果这些字段不包含在聚合函数中,那么数据库系统将无法确定在每个分组中应该选择哪个具体的值进行显示。
举个例子,group by后面的就属于分组依据字段,没有在group by之后的全是非分组依据字段,为什么一定要这样呢?如下图所示:
请大家看这张表单,非分组依据字段出现在了查询字段之后也没有依靠聚合函数,就会导致一个现象,这里的人名是随机出现的,游戏陪玩不只有马化腾一个,但是这里只显示了他一个,所以这样的数据是没有意义的,这一点需要大家注意。
总结
聚合函数的主要内容就为大家介绍完了,希望大家能够从我的文章当中有所收获,建议您收藏起来,如果知识有遗忘的话可以反复观看,数据库的很多知识不需要我们背诵,需要用到的话,只需要翻阅之前的文档会议一下即可。