本篇内容主要讲解“mysql中having怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中having怎么使用”吧!

在mysql中,having子句用于筛选分组之后的各种数据,通常与“group by”联合使用,该语句弥补了where关键字无法与聚合函数联合使用的不足。

本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

mysql中having的用法是什么

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。

HAVING 子句可以让我们筛选分组后的各组数据。

SQL HAVING 语法

SELECTcolumn_name,aggregate_function(column_name)FROMtable_nameWHEREcolumn_nameoperatorvalueGROUPBYcolumn_nameHAVINGaggregate_function(column_name)operatorvalue;

演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+|id|name|url|alexa|country|+----+--------------+---------------------------+-------+---------+|1|Google|https://www.google.cm/|1|USA||2|淘宝|https://www.taobao.com/|13|CN||3|菜鸟教程|http://www.runoob.com/|4689|CN||4|微博|http://weibo.com/|20|CN||5|Facebook|https://www.facebook.com/|3|USA||7|stackoverflow|http://stackoverflow.com/|0|IND|+----+---------------+---------------------------+-------+---------+

下面是 "access_log" 网站访问记录表的数据:

mysql>SELECT*FROMaccess_log;+-----+---------+-------+------------+|aid|site_id|count|date|+-----+---------+-------+------------+|1|1|45|2016-05-10||2|3|100|2016-05-13||3|1|230|2016-05-14||4|2|10|2016-05-14||5|5|205|2016-05-14||6|4|13|2016-05-15||7|3|220|2016-05-15||8|5|545|2016-05-16||9|3|201|2016-05-17|+-----+---------+-------+------------+9rowsinset(0.00sec)

SQL HAVING 实例

现在我们想要查找总访问量大于 200 的网站。

我们使用下面的 SQL 语句:

SELECTWebsites.name,Websites.url,SUM(access_log.count)ASnumsFROM(access_logINNERJOINWebsitesONaccess_log.site_id=Websites.id)GROUPBYWebsites.nameHAVINGSUM(access_log.count)>200;

执行以上 SQL 输出结果如下:

到此,相信大家对“mysql中having怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!