access数据库入门教程 零基础自学数据基础知识( 四 )


access数据库入门教程 零基础自学数据基础知识


运行结果:
access数据库入门教程 零基础自学数据基础知识


3、count()函数
统计记录数,求每个班级的学生人数:
SELECT 班级, count(学号)FROM 学生成绩表GROUP BY 班级;
access数据库入门教程 零基础自学数据基础知识


运行结果:
access数据库入门教程 零基础自学数据基础知识


4、max()函数
取字段最大值,求每个班级的语文最高分:
SELECT 学号, max(语文分数)FROM 学生成绩表GROUP BY 学号;
access数据库入门教程 零基础自学数据基础知识


运行结果:
access数据库入门教程 零基础自学数据基础知识


5、min()函数
取字段最小值,求每个班级的语文最低分:
access数据库入门教程 零基础自学数据基础知识


运行结果:
access数据库入门教程 零基础自学数据基础知识


查询语句中where和having的条件用法where和having在查询语句中的作用都是条件限制
它们在查询语句中的位置是不一样的,而且限制的内容也不一样
1、所处位置不一样
在查询语句中where作为普通条件限制,它是在group by 之前
SELECT 班级, avg(语文分数) AS 语文平均分FROM 学生成绩表WHERE 英语分数>=60GROUP BY 班级
access数据库入门教程 零基础自学数据基础知识


而having是一个过滤声明,是在查询返回结果集以后对查询结果进行的条件限制,位置是在group by 之后
SELECT 班级, avg(语文分数) AS 语文平均分FROM 学生成绩表WHERE 英语分数>=60GROUP BY 班级HAVING avg(语文分数)>=60;
access数据库入门教程 零基础自学数据基础知识


2、后接内容不一样
在查询语句中where后面只能接普通条件,不能接聚合函数条件
所谓的聚合函数就是我们上一期提到的函数都可称为聚合函数
下面where后这样写是错误的:
SELECT 班级, avg(语文分数) AS 语文平均分FROM 学生成绩表WHERE avg(语文分数)>=60//错误GROUP BY 班级
access数据库入门教程 零基础自学数据基础知识


在查询语句中having作为查询结果返回后的条件限制,需要接返回结果后的条件
下面having后这样写是错误的,因为返回结果已经不存在“英语分数”这个字段了:
SELECT 班级, avg(语文分数) AS 语文平均分FROM 学生成绩表WHERE 英语分数>=60GROUP BY 班级HAVING 英语分数>=60;//错误
access数据库入门教程 零基础自学数据基础知识


3、运行结果不一样
在where后接的条件表示要在英语成绩及格的学生中进行统计
统计这些学生的语文成绩怎么样
从下面的结果可以看到:
在一班英语及格的学生中语文成绩并不好平均成绩没有达到及格线
而其它班级英语和语文成绩都较好 。
access数据库入门教程 零基础自学数据基础知识


而having后加了个条件是avg(语文分数)>=60

推荐阅读