关键字:HAVINg
本文是关于mysql的分组查询过滤功能,HAVINg可以对分组结果进行进一步的限定,包括限定查询结果,使用聚合函数进行过滤等。
语法:
SELECt group_concat(name),name,COUNT(*) num from tb_region GROUP BY name HAVINg num>5;
举例如下:
备注:
HAVINg 关键字和 WHERe 关键字都可以用来过滤数据,且 HAVINg 支持 WHERe 关键字中所有的操作符和语法。
但是 WHERe 和 HAVINg 关键字也存在以下几点差异:
- 一般情况下,WHERe 用于过滤数据行,而 HAVINg 用于过滤分组。
- WHERe 查询条件中不可以使用聚合函数,而 HAVINg 查询条件中可以使用聚合函数。
- WHERe 在数据分组前进行过滤,而 HAVINg 在数据分组后进行过滤 。
- WHERe 针对数据库文件进行过滤,而 HAVINg 针对查询结果进行过滤。也就是说,WHERe 根据数据表中的字段直接进行过滤,而 HAVINg 是根据前面已经查询出的字段进行过滤。
- WHERe 查询条件中不可以使用字段别名,而 HAVINg 查询条件中可以使用字段别名。



