分组条件语法结构:
[HAVING where_condition]
比如对年龄大于35岁的用于进行性别分组:
mysql> SELECT sex FROM users GROUP BY sex HAVING age > 35; ERROR 1054 (42S22): Unknown column 'age' in 'having clause'
为什么会报错呢?是因为HAVING后面的条件只能为聚合函数(比如SUM,MIN,MAX等)或者该条件出现在SELECT中,所以我们可以将SELECT中加入age:
mysql> SELECT sex,age FROM users GROUP BY sex HAVING age > 35; Empty set (0.01 sec)
或者使用聚合函数:
mysql> SELECT sex FROM users GROUP BY sex HAVING count(id) >=2; +------+ | sex | +------+ | 0 | +------+ 1 row in set (0.00 sec)
其中count(列名)的作用为:
只包括列名指定列,返回指定列的记录数,在统计结果的时候,会忽略列值为NULL的记录(不包括空字符串和0),即列值为NULL的记录不统计在内。——摘自丸丸酱博客
请登录之后再进行评论