GROUP BY 子句将查询结果按某一列或多列的值分组,值相等的为一组。对查询结果分组的目的是为了细化聚集函数的作用对象。如果未对查询结果分组,聚集函数将作用于整个查询结果。分组后聚集函数将作用于每一个租,即每一个组都有一个函数值。
SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*)>3
这里先用GROUP BY 子句按Sno进行分组,再用聚集函数COUNT对每一组计数。HAVING短语给出了选择租的条件,只有满足条件的租才会被选出来。
WHERE 子句与HAVING 短语的区别在于作用对象不同。WHERE 子句作用于基本表或视图,从中选择满足条件的元组。HAVING短语作用于组,从中选择满足条件的组。