• 中文
    • English
  • 注册
  • 查看作者
  • 4-9:having语句设置分组条件

    分组条件语法结构:

    [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的记录不统计在内。——摘自丸丸酱博客

  • 0
  • 0
  • 0
  • 3k
  • 请登录之后再进行评论

    登录
    单栏布局 侧栏位置: