在MySQL中,HAVING子句用于在對查詢結果進行分組后,對分組結果進行篩選。它與WHERE子句的區別在于,WHERE子句用于篩選行,而HAVING子句用于篩選分組。
HAVING子句的一般語法如下:
SELECT 列1, 列2, ...
FROM 表名
WHERE 條件
GROUP BY 列1
HAVING 條件
在上面的語法中,HAVING子句需要配合GROUP BY子句一起使用,首先對查詢結果進行分組,然后再對分組結果進行篩選。HAVING子句中的條件通常是用于對聚合函數的結果進行篩選,例如對SUM、AVG、COUNT等函數的結果進行篩選。
舉例來說,假設我們有一個學生表,包含學生的姓名、班級和成績字段,我們想要找出每個班級平均成績大于80分的班級,可以使用HAVING子句來實現:
SELECT 班級, AVG(成績) as 平均成績
FROM 學生表
GROUP BY 班級
HAVING AVG(成績) > 80
在上面的例子中,首先根據班級分組,然后計算每個班級的平均成績,最后篩選出平均成績大于80分的班級。