一、用法
和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