mysql中的用法 count group by having

  1. 1

    语法:sql

    group by 字段 having 条件判断;函数

    group by的用法我已经在上一篇经验中介绍了it

  2. 2

    仍是已员工绩效表为例class

     
  3. 3

    咱们若是就是查询每一个部门成绩大于89的员工数,能够这样写:基础

    SELECT dept,COUNT(user_name) FROM ec_uses WHERE score>89 GROUP BY dept;语法

    对这个查询的过程进行分析,实际上是:先查出绩效成绩大于89的员工记录,而后再用count聚合函数统计部门的人数,也就是说where是在聚合以前筛选记录的,那么若是咱们要在聚合以后筛选记录该如何处理呢?im

     
  4. 4

    例如,在上面的基础上再加一个条件,查询部门人数大于1的部门统计

    那么咱们是先要统计出每一个部门的人数,也就是要用count聚合函数,而后再看哪些部门的人数是多于1人的经验

    也就是筛选条件是在聚合以后的,这时where已不能知足使用,咱们就须要用到having了数据

    sql:

    SELECT dept,COUNT(user_name) count_tmp FROM ec_uses GROUP BY dept HAVING count_tmp>1;

  5. 5

    看执行结果

     
  6. 6
    因此having子句对咱们筛选分组后的数据很是方便
  7. 7

    值得注意的是having后面跟的条件判断的字段必须是聚合函数返回的结果,不然sql会报错,例如:

    SELECT dept,COUNT(user_name) count_tmp FROM ec_uses GROUP BY dept HAVING score>1;

相关文章
相关标签/搜索