问题 单项选择题

以下各题使用如下三个数据库表:
学生表:student(学号,姓名,性别,出生日期,院系)
课程表:course(课程号,课程名,学时)
选课成绩表:score(学号,课程号,成绩)
其中出生日期的数据类型为日期型,学时和成绩为数值型,其他均为字符型。

查询选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是( )。

A.SELECT s.学号,姓名,平均成绩FROM student s,score sc
WHERE s.学号=sc.学号
GROUP BY s.学号HAVING COUNT(*)>=5 ORDER BY平均成绩DESC

B.SELECT s.学号,姓名,AVG(成绩)FROM student s,score sc
WHERE s.学号=sc.学号AND COUNT(*)>=5
GROUP BY学号ORDER BY 3 DESC

C.SELECT s.学号,姓名,AVG(成绩)平均成绩FROM student s,score sc
WHERE s.学号=sc.学号AND COUNT(*)>=5
GROUP BY s.学号ORDER BY平均成绩DESC

D.SELECT s.学号,姓名,AVG(成绩)平均成绩FROM student s,score sc
WHERE s.学号=sc.学号
GROUP BY s.学号HAVING COUNT(*)>=5 ORDER BY 3 DESC

答案

参考答案:D

解析: 由条件可知所要查询的是所选课程数大于等于5的学生的学号、姓名和平均成绩,其中成绩是在sc表中,所以s.学号=sc.学号,因为必须是成绩大于等于5,所以COUNT(*)>=5。所以,正确的SQL语句为SELECTs.学号,姓名,AVG(成绩)平均成绩FROM student s,score sc WHERE s.学号=sc.学号GROUP BY s.学号HAVINGCOUNT(*)>=5 ORDER BY 3 DESC,答案为D。

选择题
多项选择题