问题
单项选择题
“学生—选课—课程”数据库中的三个关系:
S(S#, SNAME, SEX, AGE, DEPT)
SC(S#, C#, GRADE)
C(C#, CNAME, TEACHER)
其中S的主码是S#, SC的主码是(S#, C#),C的主码是C#。
查找选修了3门以上课程的学生的学号,正确的SQL语句是()。
A.SELECT S# FROM SC GROUP BY S# WHERE COUNT(*)>3
B.SELECT S# FROM SC GROUP BY S# HAVING COUNT(*)>3
C.SELECT S# FROM SC ORDER BY S# WHERE COUNT(*)>3
D.SELECT S# FROM SC ORDER BY S# HAVING COUNT(*)>3
答案
参考答案:B
解析:
先用GROUP BY子句按S#进行分组,再用聚集函数COUNT对每一个,分组计数。HAVING短语指定选择组的条件,只有满足条件(元组个数>3,表示此学生选修的课超过3门)的组才会被选出来。