内容正文:
编写说明:依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循"由浅入深、循序渐进"的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》第55练,内容是使用GROUP BY子句分组查询。
《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》 第55练
使用GROUP BY子句分组查询
一、单项选择题
1.下列 SQL 语句中,实现先筛选成绩及格记录,再按班级分组统计平均分,最后筛选平均分大于 80 的分组,语法完全正确的是( )
A. SELECT class,AVG(score) FROM score GROUP BY class HAVING score>=60 AND AVG(score)>80
B. SELECT class,AVG(score) FROM score WHERE score>=60 GROUP BY class HAVING AVG(score)>80
C. SELECT class,AVG(score) FROM score HAVING score>=60 GROUP BY class WHERE AVG(score)>80
D. SELECT class,AVG(score) FROM score GROUP BY class WHERE score>=60 HAVING AVG(score)>80
2.统计student表中每个班级的学生总人数,分组 + 聚合函数代码正确的是( )
A. SELECT class,SUM(*) FROM student GROUP BY class;
B. SELECT class,COUNT(*) FROM student GROUP BY class;
C. SELECT class,AVG(*) FROM student GROUP BY class;
D. SELECT class,MAX(*) FROM student GROUP BY class;
3.过滤分组后的结果,必须使用的子句是( )
A. WHERE
B. HAVING
C. ORDER BY
D. LIMIT
4.下列关于GROUP BY多字段分组代码,书写正确的是( )
A. GROUP BY class,gender
B. GROUP BY class AND gender
C. GROUP BY class+gender
D. GROUP BY class OR gender
5.下列分组查询语句,语法存在错误的是( )
A. SELECT class,COUNT(*) FROM student GROUP BY class;
B. SELECT class,AVG(age) FROM student GROUP BY class;
C. SELECT name,COUNT(*) FROM student GROUP BY class;
D. SELECT class,MAX(score) FROM student GROUP BY class;
6.现有员工表emp,需按部门分组,筛选出部门平均工资大于 5000 的部门,代码书写正确的是( )
A. SELECT dept,AVG(salary) FROM emp GROUP BY dept WHERE AVG(salary)>5000
B. SELECT dept,AVG(salary) FROM emp GROUP BY dept HAVING AVG(salary)>5000
C. SELECT dept,salary FROM emp GROUP BY dept HAVING salary>5000
D. SELECT dept,AVG(salary) FROM emp HAVING AVG(salary)>5000 GROUP BY dept
7.以下分组查询 SQL 代码中,语法合法、可正常执行的是( )
A. SELECT gender,MAX(age),name FROM student GROUP BY gender
B. SELECT gender,MAX(age) FROM student GROUP BY gender
C. SELECT gender FROM student GROUP BY age
D. SELECT COUNT(*) FROM student GROUP BY
二、填空题
1. MySQL 中实现分组查询的核心子句关键字是__________。
2.分组查询中,用于统计每个分组内总记录数的聚合函数是__________。
3.对分组后的结果进行条件过滤,必须使用__________子句。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循"由浅入深、循序渐进"的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》第55练,内容是使用GROUP BY子句分组查询。
《数据库原理与应用技术-MySQL》(河北科学技术出版社)《一课一练》 第55练
使用GROUP BY子句分组查询
一、单项选择题
1.下列 SQL 语句中,实现先筛选成绩及格记录,再按班级分组统计平均分,最后筛选平均分大于 80 的分组,语法完全正确的是( )
A. SELECT class,AVG(score) FROM score GROUP BY class HAVING score>=60 AND AVG(score)>80
B. SELECT class,AVG(score) FROM score WHERE score>=60 GROUP BY class HAVING AVG(score)>80
C. SELECT class,AVG(score) FROM score HAVING score>=60 GROUP BY class WHERE AVG(score)>80
D. SELECT class,AVG(score) FROM score GROUP BY class WHERE score>=60 HAVING AVG(score)>80
【答案】B
【解析】分组查询固定执行顺序:WHERE(过滤原始数据)→GROUP BY(分组)→HAVING(过滤分组结果);A 将原始条件写在 HAVING 中错误,C、D 子句顺序完全颠倒。
2.统计student表中每个班级的学生总人数,分组 + 聚合函数代码正确的是( )
A. SELECT class,SUM(*) FROM student GROUP BY class;
B. SELECT class,COUNT(*) FROM student GROUP BY class;
C. SELECT class,AVG(*) FROM student GROUP BY class;
D. SELECT class,MAX(*) FROM student GROUP BY class;
【答案】B
【解析】COUNT(*)用于统计分组后的记录总数,是分组查询最常用聚合函数;SUM求和、AVG平均值、MAX最大值均不适用。
3.过滤分组后的结果,必须使用的子句是( )
A. WHERE
B. HAVING
C. ORDER BY
D. LIMIT
【答案】B
【解析】HAVING专门过滤分组结果,可搭配聚合函数;WHERE仅过滤原始数据,不能使用聚合函数。
4.下列关于GROUP BY多字段分组代码,书写正确的是( )
A. GROUP BY class,gender
B. GROUP BY class AND gender
C. GROUP BY class+gender
D. GROUP BY class OR gender
【答案】A
【解析】多字段分组语法:GROUP BY 字段1,字段2,多个分组字段用英文逗号分隔,其余选项语法非法。
5.下列分组查询语句,语法存在错误的是( )
A. SELECT class,COUNT(*) FROM student GROUP BY class;
B. SELECT class,AVG(age) FROM student GROUP BY class;
C. SELECT name,COUNT(*) FROM student GROUP BY class;
D. SELECT class,MAX(score) FROM student GROUP BY class;
【答案】C
【解析】分组查询规则:SELECT后只能跟分组字段和聚合函数,name未分组也非聚合函数,语法报错。
6.现有员工表emp,需按部门分组,筛选出部门平均工资大于 5000 的部门,代码书写正确的是( )
A. SELECT dept,AVG(salary) FROM emp GROUP BY dept WHERE AVG(salary)>5000
B. SELECT dept,AVG(salary) FROM emp GROUP BY dept HAVING AVG(salary)>5000
C. SELECT dept,salary FROM emp GROUP BY dept HAVING salary>5000
D. SELECT dept,AVG(salary) FROM emp HAVING AVG(salary)>5000 GROUP BY dept
【答案】B
【解析】聚合函数条件不能用 WHERE 过滤,必须使用 HAVING;HAVING 子句放置在 GROUP BY 之后,A 语法错误、C 条件逻辑错误、D 子句顺序错误。
7.以下分组查询 SQL 代码中,语法合法、可正常执行的是( )
A. SELECT gender,MAX(age),name FROM student GROUP BY gender
B. SELECT gender,MAX(age) FROM student GROUP BY gender
C. SELECT gender FROM student GROUP BY age
D. SELECT COUNT(*) FROM student GROUP BY
【答案】B
【解析】分组查询规则:SELECT 后只能出现分组字段和聚合函数;A 中 name 非分组字段、非法;C 分组字段与查询字段不匹配;D GROUP BY 后缺少分组字段,语法报错。
二、填空题
1. MySQL 中实现分组查询的核心子句关键字是__________。
【答案】GROUP BY
2.分组查询中,用于统计每个分组内总记录数的聚合函数是__________。
【答案】COUNT(*)
3.对分组后的结果进行条件过滤,必须使用__________子句。
【答案】HAVING
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$