在 MySQL SELECT 语句中,允许使用 GROUP BY 子句,将结果集中的数据行根据选择列的值进行逻辑分组,
以便能汇总表内容的子集,实现对每个组而不是对整个结果集进行整合
语法
GROUP BY 属性名(列) [HAVING 条件表达式]
属性名:是指按照该字段的值进行分组
HAVING 条件表达式
用来限制分组后的显示,符合条件表达式的结果将被显示
Where和having都是过滤条件的,有什么区别呢
执行的时机不同,where是在分组之前过滤条件,having是分组之后的的过滤
判断条件不同,where后面不能跟聚合函数进行判断,having是可以的。
注意:分组之后,查询的字段一般都是聚合函数或者分组字段,查询其他的没有任何意义