在线名词解释大全 - 数据库概论 - 详细

SQL查询操作2题目基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下: S(S#,SNAME,GENDER,AGE,DEPT) C(C#,CNAME,TEACHER) SC(S#,C#,GRADE)其中:S#为学号,SNAME为姓名,GENDER为性别,AGE为年龄,DEPT为系别,C#为课程号,CNAME为课程名,GRADE为成绩。查询选课人数超过3人的课程的课程号及相应的选课人数()。

A
A.Select c#, COUNT(s#) from SC GROUP BY c# WHERE count(s#)>3
B
B.Select c#, COUNT(s#) from SC GROUP BY c# WHERE count(s#)>=3
C
C.Select s#, COUNT(s#) from SC GROUP BY s# HAVING count(s#)>3
D
D.Select c#, COUNT(s#) from SC GROUP BY c# HAVING count(s#)>3
正确答案:
用HAVING子句增加了限定选课人数超过3人的结果才返回出来,注意:这里因为条件使用了聚合函数count(),不能用where子句,这也就是为什么我们会增加HAVING子句的原因。也就是说,WHERE子句应用于表中的单个条件;而HAVING子句通常应用于分组查询中,并且要放在GROUP BY子句之后, HAVING子句中的查询条件只能是包含在GROUP BY子句中的列或聚合函数。区分好where和having分别如何使用。
相关推荐
扫描二维码
关注公众平台