MySQL中HAVING關鍵字是與GROUP BY一起使用的。GROUP BY子句會將結果按特定的列分組,而HAVING關鍵字使用于GROUP BY之后,對組數據進行過濾。
SELECT column_name(s) FROM table_name GROUP BY column_name(s) HAVING condition;
“column_name(s)”指的是需要被查詢的列名,而“table_name”則是數據庫中的表名。GROUP BY子句按照列名對結果集進行分組。HAVING關鍵字緊隨GROUP BY之后,用于進一步篩選結果。
“condition”是用于篩選的條件,HAVING會篩選組數據,將不符合條件的數據刪除。舉個例子,在一個學生表中,我們需要查詢每個班級平均分數高于70分的班級:
SELECT class, AVG(score) FROM student_scores GROUP BY class HAVING AVG(score) >70;
這個查詢語句首先按照班級進行分組,然后計算出每個班級的平均分數。HAVING關鍵字接著篩選出平均分數高于70分的班級數據。最終返回符合條件的班級以及平均分數。
需要注意的是HAVING關鍵字只能用于GROUP BY之后的查詢語句中,并且只能篩選組數據,不能直接用于一般查詢語句中。如果需要篩選每一行數據,可以使用WHERE關鍵字。