设关系模式SCG (S#, C#, grade)中S#为学生学号,C#为课程号,grade为某学号学生学某号课程的考试成绩。今要查询每门课程的平均成绩,且要求查询的结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列,则用SQL查询语言应为(1)。

admin2019-04-09  40

问题 设关系模式SCG (S#, C#, grade)中S#为学生学号,C#为课程号,grade为某学号学生学某号课程的考试成绩。今要查询每门课程的平均成绩,且要求查询的结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列,则用SQL查询语言应为(1)。
   若查询的结果仅限于平均分数超过80分的,则应(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为正确答案。
转载请注明原文地址:https://kaotiyun.com/show/wkVZ777K
0

最新回复(0)