单选题 学生表:S(学号,姓名,性别)和选课成绩表:SC(学号,课程号,成绩),用SQL语言检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是______。
  • A.SELECT S.学号,姓名,AVG(成绩) 平均成绩 FROM S,SC;
    WHERE S.学号=SC.学号;
    GROUP BY S.学号,姓名 HAVING COUNT(*)> =5 ORDER BY 3 DESC
  • B.SELECT S.学号,姓名,AVG(成绩) FROM S,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.学号,姓名,平均成绩 FROM S,SC;
    WHERE S.学号=SC.学号;
    GROUP BY S.学号,姓名 HAVING COUNT(*)> =5 ORDER BY 平均成绩 DESC
【正确答案】 A
【答案解析】[解析] GROUP BY将查询结果按指定列分成集合组。使用HAVING子句可以对这些组进行限定,定义这些组所必须满足的条件。题目中的是选修课程在5门以上(含5门)的学生,则SQL中利用HAVING COUNT(*)> =5进行限定,选项B和C中设有使用HAVING短语,故错误。本题中,采用分组函数AVG计算对每个学生分组后的平均成绩,即AVG(成绩),故D选项错误。A选择项中的ORDER BY 3 DESC指按查询结果中第三列数据降序排列,即ORDER BY平均成绩DESC,满足题目条件。故选择A选项。