一、用法
和group by 一起使用,分组后再进行条件过滤就用到having了。
GROUP BY 分组字段名 HAVING 分组后过滤条件
二、和WHERE的区别
1where是分组之前进行过滤,不满足where条件的数据不参与分组,而having是分组之后对分组结果进行过滤。
2.where不能对聚合函数进行判断,having可以。
三、示例
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, `gender` char(1) DEFAULT NULL, `job` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `user` VALUES ('1', '张三', '25', '男', '会计'); INSERT INTO `user` VALUES ('2', '李四', '22', '男', '人事'); INSERT INTO `user` VALUES ('3', '王五', '21', '女', '业务员'); INSERT INTO `user` VALUES ('4', '赵六', '23', '女', '业务员');
#查询大于1人的职业 SELECT job,COUNT(1) FROM `user` GROUP BY job HAVING COUNT(1)>1标签:INSERT,事务,DEFAULT,INTO,分组,user,NULL From: https://www.cnblogs.com/cheng8/p/18074213