0
点赞
收藏
分享

微信扫一扫

MySQL - - 聚合函数

梦想家们 2022-01-04 阅读 71

聚合函数(聚集、分组)

作用于一组数据,并对一组数据返回一个值。

一、常用的聚合函数

  1. AVG和SUM函数

    可以对数值型数据使用

  2. MIN和MAX函数

    可以对任意数据类型使用

    SELECT AVG(salary),SUM(salary),MIN(salary),MAX(salary)
    FROM employees;
    
  3. COUNT函数

    可以对任意数据类型使用,返回表中的记录总数

    区别:COUNT(*),COUNT(1),COUNT(列名)

    ① 搜索引擎为MyISAM,则三者的执行效率相同
    ② 搜索引擎为Innodb,前两个优于搜索列名
    ③ COUNT(列名)会自动去NULL,COUNT( * )不会去空,所以两者不能无条件混用

二、GROUP BY

  1. 使用单列分组
    SELECT department_id ,AVG(salary),SUM(salary)
    FROM employees
    GROUP BY department_id;
    
  2. 使用多列分组
    SELECT department_id,job_id ,AVG(salary),SUM(salary)
    FROM employees
    GROUP BY department_id,job_id;
    

    在这里插入图片描述

  3. 连接使用WITH ROLLUP

    会对GROUP BY 后的第一个字段进行升序排列,并在所有查询记录后增加一条记录,该记录为所有查询记录之和。

    WITH ROLLUP 与 ORDER BY 不能同时使用,因为前者会产生额外一条统计记录的原因

    在这里插入图片描述

三、HAVING

  1. 使用条件

    必须跟在GROUP BY之后,与其同时使用

    适用于使用了聚合函数的筛选条件,因为WHERE中不允许使用聚合函数

  2. HAVING与WHERE对比
    优点缺点
    WHERE先筛选数据,再进行关联,执行效率高
    HAVING可以使用聚合函数进行筛选
  3. 开发中的选择

    先使用WHERE对普通条件进行筛选

    再使用HAVING对聚合函数条件筛选

  4. 使用示例

    在这里插入图片描述

举报

相关推荐

0 条评论