HAVING是MySQL中用于過濾分組聚合結(jié)果的一個(gè)關(guān)鍵字,通常與GROUP BY一起使用。它允許我們對聚合結(jié)果進(jìn)行進(jìn)一步的過濾,類似于WHERE子句。
SELECT column1, column2, COUNT(*) FROM table_name WHERE condition GROUP BY column1, column2 HAVING COUNT(*) >10;
以上示例查詢語句中,HAVING子句過濾了分組聚合結(jié)果,只返回統(tǒng)計(jì)數(shù)量大于10的分組。通常情況下,HAVING子句和GROUP BY一起使用,WHERE子句用于過濾行數(shù)據(jù),而HAVING子句用于過濾聚合數(shù)據(jù)。
當(dāng)然,HAVING也可以和AND一起使用。AND用于連接多個(gè)條件,只有滿足所有條件,才返回結(jié)果。以下是一個(gè)示例:
SELECT column1, AVG(column2) FROM table_name GROUP BY column1 HAVING AVG(column2) >50 AND COUNT(*) >10;
以上示例查詢語句中,HAVING子句同時(shí)滿足AVG(column2) >50和COUNT(*) >10兩個(gè)條件,才返回分組聚合結(jié)果。這說明HAVING子句和AND可以組合使用,進(jìn)一步對聚合結(jié)果進(jìn)行精確過濾。