HAVING子句用于在多表查詢中對分組后的結果進行過濾。與WHERE子句不同的是,WHERE子句用于篩選行,而HAVING子句用于篩選組。
在多表查詢中使用HAVING子句的步驟如下:
例如,假設有兩個表A和B,表A中存儲了學生的成績信息,表B中存儲了學生的基本信息,現在要查詢各個班級平均成績大于80分的班級信息,可以使用以下SQL語句:
SELECT B.class, AVG(A.score) as avg_score
FROM tableA A
JOIN tableB B
ON A.student_id = B.student_id
GROUP BY B.class
HAVING AVG(A.score) > 80;
在上面的例子中,首先使用JOIN將表A和表B連接起來,然后使用GROUP BY對班級進行分組,接著使用AVG函數計算每個班級的平均成績,最后在HAVING子句中篩選出平均成績大于80分的班級信息。