having

一、用法

和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
posted @ 2024-03-10 21:35  lucsa  阅读(3)  评论(0编辑  收藏  举报