25.1 HAVING的作用
HAVING子句能够指定过滤条件,从而控制查询结果中哪些组可以出现在最终结果里面。
WHERE子句对被选择的列施加条件,而HAVING子句则对GROUP BY子句所产生的组施加条件。
25.2 HAVING语法
下面可以看到HAVING子句在SELECT查询中的位置:
SELECT FROM WHERE GROUP BY HAVING ORDER BY
在SELECT查询中,HAVING子句必须紧随GROUP BY子句,并出现在ORDER BY子句(如果有的话)之前。带有HAVING子句的SELECT语句的语法如下所示:
SELECT column1,column2 FROM table1,table2 WHERE [conditions] GROUP BY column1,column2 HAVING [conditions] ORDER BY column1.column2;
25.3 HAVING实例
考虑Customers表
筛选出“城市”列的内容出现次数大于或等于2的所有记录:
SELECT * FROM Customers WHERE 城市 IN( SELECT 城市 FROM Customers GROUP BY 城市 HAVING COUNT(1)>1 );