问题 单项选择题

(31)~(35)题使用如下三个数据库表:
学生表: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学号,姓名,AVG (成绩) FROM student s,score sc
WHERE s.学号=sc.学号AND COUNT(*)>=5
GROUP BY 学号 ORDERBY 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

解析: 本题考查的知识点是SQL查询。要查询选修课程在5门以上(含5门)的学生信息,必须要找到每个学号在成绩表中的出现次数(换句话说就是记录条数),为此需要根据学号进行分组,分组条件是COUNT(*)>=5,所以选项D正确。选项B中COUNT(*)>=5使用位置不对,结果造成不是统计每个学号下的记录个数,而是统计符合条件的所有记录个数。

单项选择题
多项选择题