MySQL基础—分组函数

  • 分组函数

  功能:用作统计使用,又称聚合函数或者统计函数或者组函数

  分类:sum求和、avg平均值、max最大值、min最小值、count计算个数

  特点:1、sum、avg一般用于处理数值型

       max、min、count可以处理任何类型

     2、以上分组函数都忽略null值

     3、可以和distinct搭配使用实现去重云运算

     4、分组查询中的筛选条件分为两类

             数据源              位置                 关键字

     分组前筛选      原始表               group by前面         WHERE

     分组后筛选   分组后的结果集       group by后面         HAVING

     分组函数做条件肯定是放在HAVING子句中

     能用分组前筛选的,优先考虑分组前筛选。

     5、group by 子句支持单个字段分组,也支持多个字段分组,多个字段之间用逗号隔开,没有先后顺序要求,也支持表达式或函数

     6、也支持排序,放在整个语句的最后。

  count函数:

  select count(salary) from employees;

    select count(*) from employees;统计行数

    select count(1) from employees;加常量值相当于在表中加了一列常量值

  效率:innodb存储引擎,count(*)和count(1)效率差不多,都比count(字段)效率高

  分组函数查询字段要求是group by后面的字段

  • 分组查询

  select 分组函数,列(要求出现在group by的后面)from 表 

  【where 筛选条件】

  group by 分组函数

    【order by】

  查询统计每个部门的平均工资group by

  分组前筛选

   分组后筛选

  查询哪个部门的员工个数>2

  select count(*),department_id

  from employees

  group by department_id

  having count(*)>2 分组后筛选

  查询每个工种有奖金的员工的最高工资>12000的工种编号和最高工资

  select max(salary),job_id

  from employees

  where commission_pct is not null

  group by job_id

  having max(salary)>12000

    可以多字段分组查询,支持排序操作

  

MySQL基础—分组函数

上一篇:2020重新出发,MySql基础,MySql事务


下一篇:MongoDB之常见错误