运行结果:
5、min()函数
取字段最小值,求每个班级的语文最低分:
运行结果:
查询语句中where和having的条件用法where和having在查询语句中的作用都是条件限制
它们在查询语句中的位置是不一样的,而且限制的内容也不一样
1、所处位置不一样
在查询语句中where作为普通条件限制,它是在group by 之前
select 班级, avg(语文分数) AS 语文平均分FROM 学生成绩表WHERE 英语分数>=60GROUP BY 班级
而having是一个过滤声明,是在查询返回结果集以后对查询结果进行的条件限制,位置是在group by 之后
select 班级, avg(语文分数) AS 语文平均分FROM 学生成绩表WHERE 英语分数>=60GROUP BY 班级HAVING avg(语文分数)>=60;
2、后接内容不一样
在查询语句中where后面只能接普通条件,不能接聚合函数条件
所谓的聚合函数就是我们上一期提到的函数都可称为聚合函数
下面where后这样写是错误的:
select 班级, avg(语文分数) AS 语文平均分FROM 学生成绩表WHERE avg(语文分数)>=60//错误GROUP BY 班级
在查询语句中having作为查询结果返回后的条件限制,需要接返回结果后的条件
下面having后这样写是错误的,因为返回结果已经不存在“英语分数”这个字段了:
select 班级, avg(语文分数) AS 语文平均分FROM 学生成绩表WHERE 英语分数>=60GROUP BY 班级HAVING 英语分数>=60;//错误
3、运行结果不一样
在where后接的条件表示要在英语成绩及格的学生中进行统计
统计这些学生的语文成绩怎么样
从下面的结果可以看到:
在一班英语及格的学生中语文成绩并不好平均成绩没有达到及格线
而其它班级英语和语文成绩都较好 。
而having后加了个条件是avg(语文分数)>=60
这表示在统计结果中只显示平均成绩及格的班级,不及格的班级不显示
从结果看以看到:
下面这个结果较之前少了一个班级,就是一班,因为一班语文平均成绩没及格
同时查询多个表下面这个数据库有两个成绩单
一个是期中考试
一个是期末考试
要看一看学生成绩有没有进步:
创建一个查询,并写上下面的查询语句:
select A.学号, A.姓名, A.英语分数 AS 其中英语分, B.英语分数 AS 其末英语分FROM 基础信息 AS A, 期末考试 AS BWHERE A.学号=B.学号;
select:后面接的就是我们想要的信息,如学号,姓名,期中英语分,期末英语分;
推荐阅读
- GRIS鳗鱼成就怎么完成 GRIS鳗鱼成就完成方法分享_网
- GRIS备忘录全收集图文攻略 GRIS备忘录怎么收集_网
- 暗影火炬城怎么格挡 暗影火炬城格挡操作方法介绍
- 下一站江湖千叶如来 下一站江湖千叶如来怎么得
- 暗影火炬城试玩版评测心得分享 暗影火炬城demo版试玩怎么样
- 下一站江湖苍泽真气怎么得 下一站江湖苍泽真气获得攻略
- 电脑怎么p图 电脑p图教程步骤
- ppt转换pdf怎么转换 ppt转pdf在线转换免费
- ico图标文件怎么制作 ico图标在线转换
- 新手机怎么充电 手机第一次如何正确充电