设关系模式SCG (S#, C#, grade)中S#为学生学号,C#为课程号,grade为某学号学生学某号课程的考试成绩。今要查询每门课程的平均成绩,且要求查询的结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列,则用SQL查询语言应为 (1) 。 若查询的结果仅限于平均分数超过80分的,则应 (2) 。 |
(2)
A.在Group子名的下一行加入: Having Avg(*)>80
B.在Group子名的下一行加入: Having AVG(grade)>80
C.在Group子名的下一行加入: Where AVG(grade)>80
D.在Group子名的下一行加入: Where AVG(*)>80
参考答案:B
解析: 对于第1空,标准的SQL语句的结构为: Select [字段列表|表达式] From表名Where条件表达式Group by字段列表 Order by字段列表|字段号 根据题意分析,要求出每个学生的平均成绩,所以一定要以学生的学号来进行分组,从此可以看出,选项A使用了学生成绩进行分组,所以错误;选项D使用了错误的表达式进行分组,所以也是错误选项;选项C使用了错误的关键字Where,所以也为错误答案;选项B为正确答案。 对于第2空,HAVING子句用来指定包括在查询结果中的组必须满足的筛选条件。 HAVING应该同GROUPBY一起使用。它能包含数量不限的筛选条件,筛选条件用AND或OR连接,还可以使用NOT来对逻辑表达式求反。而在此题目给出的几个选项中,C和D明显错误;选项A使用了错误的函数,并没有指定条件是平均分大于80,所以错误;选项B为正确答案。