sql2000对查询结果分组

来源:互联网 发布:淘宝招商是诈骗吗 编辑:程序博客网 时间:2024/05/08 16:13

         Group By  子句将查询结果表按某一列或多列值分组,值相等的为一组。分组的目的是为了细化集函数的作用对象,分组后集函数将作用于每一个组,即每一组都有一个函数值。

例30  求各个课程号及相应的选课人数

select cno, count(sno) '分组人数'from scgroup by cno

具有相同cno值的元组为一组,然后对每一组作用集函数count计算,以求得该组的学生人数,查询结果如下:

如果分组后还要求按一定的条件对这些组进行筛选,最终只输出满足指定条件的组,则可以用HAVING短语指定筛选条件。

例31 查询选修了3门以上课程的学生学号

select snofrom scgroup by snohaving count(*)>3

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

 

0 0