mysql中having的作用-mysql教程
MySQL 中 HAVING 子句的作用
HAVING 子句用于对聚合结果进行筛选,它在 GROUP BY 子句之后使用。HAVING 子句通过对聚合列的条件过滤,仅选择满足该条件的聚合结果行。
具体作用:
- 对分组后的数据进行筛选:GROUP BY 分组后,HAVING 子句可以根据聚合函数的计算结果,进一步筛选出符合条件的组。
- 排除不满足条件的组:它可以排除聚合结果中不满足指定条件的组,从而得到更细粒度的聚合结果。
- 基于多个条件进行筛选:HAVING 子句可以同时指定多个条件,用于对分组后的数据进行更复杂的筛选。
- 嵌套聚合:HAVING 子句还可以嵌套其他聚合函数,以创建更为复杂的筛选条件。
使用语法:
SELECT 聚合函数(列名) FROM 表名 GROUP BY 分组列 HAVING 聚合条件;
登录后复制
示例:
SELECT COUNT(*) AS 总数 FROM 订单 GROUP BY 客户ID HAVING COUNT(*) > 1;
登录后复制
该查询统计每个客户的订单数量,并筛选出订单数量大于 1 的客户。
与 WHERE 子句的区别:
- WHERE 子句用于在分组前筛选数据,而 HAVING 子句用于在分组后筛选数据。
- WHERE 子句过滤单个记录,而 HAVING 子句过滤聚合结果。