GROUP BY 子句將查詢結果按某一列或多列的值分組,值相等的爲一組。對查詢結果分組的目的是爲了細化聚集函數的作用對象。如果未對查詢結果分組,聚集函數將作用於整個查詢結果。分組後聚集函數將作用於每一個租,即每一個組都有一個函數值。
SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*)>3
這裏先用GROUP BY 子句按Sno進行分組,再用聚集函數COUNT對每一組計數。HAVING短語給出了選擇租的條件,只有滿足條件的租纔會被選出來。
WHERE 子句與HAVING 短語的區別在於作用對象不同。WHERE 子句作用於基本表或視圖,從中選擇滿足條件的元組。HAVING短語作用於組,從中選擇滿足條件的組。