Mysql中HAVING的相关使用方法

Posted mr-wuxiansheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql中HAVING的相关使用方法相关的知识,希望对你有一定的参考价值。

having字句可以让我们筛选分组之后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。

而having子句在聚合后对组记录进行筛选。我的理解就是真实表中没有此数据,这些数据是通过一些函数产生的。

 

 

一、显示每个地区的总人口数和总面积.
SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region

先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中
的不同字段(一或多条记录)作运算。

 

二、 显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。

SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
HAVING SUM(area)>1000000

在这里,我们不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。
相反,having子句可以让我们筛选分组后的各组数据

 

三、 having单独使用,与where类似

eg: 查询单笔订单充值金额大于1000的

SELECT regagent,amount FROM `cy_pay_ok`  having amount>1000 ;

SELECT regagent,amount FROM `cy_pay_ok`  where amount>1000 ;

两个查询结果一样

 

以上是关于Mysql中HAVING的相关使用方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MySQL 中使用 HAVING 限制列表?

Mysql中Group By使用Having语句配合查询

浅谈Mysql中where和having的区别

MySQL之指定过滤条件(HAVING)

当我在查询中使用“GROUP_CONCAT”和“HAVING”时如何计算 MySQL 结果?

mysql having和using使用