问题 单项选择题

第(34)~(35)题使用如下三个数据库表:
学生表:S(学号,姓名,性别,出生日期,院系)
课程表:C(课程号,课程名,学时)
选课成绩表:SC(学号,课程号,成绩)
在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。

用SQL语言检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是

A.SELECTS.学号,姓名,平均成绩FROMS,SC;
WHERES.学号=SC.学号;
GROUP BY S.学号HAVING GOUNT(*)>=5 ORDER BY 平均成绩 DESC

B.SELECT 学号,姓名,AVG(成绩)FROMS,SC;
WHERE S.学号=SC.学号 AND COUNT(*)>=5;
GROUP BY 学号 ORDER BY 3 DESC

C.SELECT S.学号,姓名,AVG(成绩)平均成绩FROM S,SC;
WHERE S.学号=SC.学号 AND COUNT(*)>=5;
GROUP BY S.学号ORDER BY平均成绩DESC

D.SELECT S.学号,姓名,AVG(成绩)平均成绩FROM S,SC;
WHERE S.学号=SC.学号;
GROUP BY S.学号 HAVING COUNT(*)>=5 0RDER BY 3 DESC

答案

参考答案:D

解析: 本题考查使用COUNT()函数来构造复杂查询,显示“平均成绩”不是表中字段,不能直接显示,用函数来实现表示方法为: AVG(成绩)平均成绩。因选项A、选项B表示错误可排除;在查询中是先用WHERE子句限定元组,然后进行分组,最后再用HAVING子句限定分组,也就是说先写WHERE子句,然后是GROUP,最后用HAVING子句对GROUP分组限定条件。选项C这两个选项中错误在于COUNT(*)>5分组限定条件写在WHERE之后。故选项D为正确答案。

单项选择题
单项选择题