我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

苏南大叔在本文中讲一下mysqlhaving用法,having语句是用在什么地方的?表示什么意思?这就是本文中要重点讨论的问题。需要强调的是:having语句总是和聚合函数放在一起使用的。

苏南大叔:如何理解mysql中的聚合函数专用的having查询语句? - mysql-having
如何理解mysql中的聚合函数专用的having查询语句?(图4-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验文章。本having语句的使用方法文章的测试环境是:win10mysql@5.7.26

测试数据

这里有个测试表pets,里面记录一些宠物的信息。建表语句如下:

CREATE TABLE `pets` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `cid` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
INSERT INTO `pets` VALUES (1,'小黑',1),(2,'虎子',2),(3,'二赖子',2),(4,'老白',3),(5,'老许',3),(6,'小白',3);

苏南大叔:如何理解mysql中的聚合函数专用的having查询语句? - 测试数据
如何理解mysql中的聚合函数专用的having查询语句?(图4-2)

聚合函数

什么样的函数是聚合函数呢?聚合函数都有哪些?主要有如下常见的聚合函数,比如:

  • 求和函数(SUM):将一组数据的值相加得到总和。
  • 计数函数(COUNT):统计一组数据中值的个数。
  • 平均值函数(AVG):将一组数据的值相加并除以总个数得到平均值。
  • 最大值函数(MAX):返回一组数据中的最大值。
  • 最小值函数(MIN):返回一组数据中的最小值。
  • Group By 分组语句。

查询数据范例:

select cid,count(id) nums,sum(id) nums2,max(id) as max,min(id) as min,avg(id) as avg from pets group by cid

苏南大叔:如何理解mysql中的聚合函数专用的having查询语句? - sql语句1
如何理解mysql中的聚合函数专用的having查询语句?(图4-3)

having语句

having语句其实就是作用在聚合函数相关语句上的where条件。例如:

select cid,count(id) nums,sum(id) nums2,max(id) as max,min(id) as min,avg(id) as avg from pets group by cid having nums>=2 and max<=3

苏南大叔:如何理解mysql中的聚合函数专用的having查询语句? - sql语句2
如何理解mysql中的聚合函数专用的having查询语句?(图4-4)

having对比using

对比一下苏南大叔以前写过的using语句的话,就可以发现:

  • using是个函数,使用方式是using("字段")
  • having是关键字,使用方式是having 字段条件

相关链接

结束语

更多mysql经验文章,可以点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   mysql