问题
填空题
在成绩表中,检索选修三门以上课程的学生及格学科的总成绩。成绩表中包含学号、姓名、课程名和成绩4个字段。请将下列的SQL语句补充完整。
SELECT 学号,SUM(成绩)
FROM 成绩表
WHERE 成绩>=60
GROUP BY 学号
COUNT(*)>=3
答案
参考答案:HAVING
解析: 在实际的应用中,除了简单的计算查询外,我们还可以加上GROUP BY子句进行分组计算查询。
通常来说,一个计算函数的范围是满足WHERE子句指定条件的所有记录。当加上GROUP BY子句后,系统会将查询结果按指定列分成集合组。当一个计算函数和一个GROUP BY子句一起使用时,计算函数的范围变为每组所有的记录。也就是说,一个结果是由组成一组的每个记录集合产生的。另外,使用HAVING子句可以对这些组进一步加以控制。用这个子句定义这些组所必须满足的条件,以便将其包含在结果中。本题中,根据学号将学生记录分组,然后利用SQL的统计函数COUNT(),统计选修三门课程以上的学生记录,并利用SUM()函数将及格科目的分数求和。