数据库-数据查询(二)

2015-07-24 06:29:41 · 作者: · 浏览: 1
= ‘ 1 ’; [例30]查询学生200215012选修课程的总学分数。 SELECT SUM(Ccredit) FROM SC, Course WHER Sno='200215012' AND SC.Cno=Course.Cno;

GROUP BY

GROUP BY子句分组:
细化聚集函数的作用对象
未对查询结果分组,聚集函数将作用于整个查询结果
对查询结果分组后,聚集函数将分别作用于每个组
作用对象是查询的中间结果表

按指定的一列或多列值分组,值相等的为一组

[例31]  求各个课程号及相应的选课人数。
     SELECT Cno,COUNT(Sno)
     FROM    SC
     GROUP BY Cno; 
[例32]  查询选修了3门以上课程的学生学号。
     SELECT Sno
     FROM  SC
     GROUP BY Sno
     HAVING  COUNT(*) >3;       

HAVING短语与WHERE子句的区别:
作用对象不同
WHERE子句作用于基表或视图,从中选择满足条件的元组
HAVING短语作用于组,从中选择满足条件的组。