【MySQL数据库】SQL 查询封神之路:步步拆解核心操作,手把手帮你解锁高阶3

三. 分组聚合

3.1 聚合函数

以下是所有常见的聚合函数:

【MySQL数据库】SQL 查询封神之路:步步拆解核心操作,手把手帮你解锁高阶3

其使用起来和函数一样,比如求一个数学乘积的平均值:

【MySQL数据库】SQL 查询封神之路:步步拆解核心操作,手把手帮你解锁高阶3

  • 注意:在使用聚合函数的时候,必须保证对应的列是可以被聚合的,比如不能对姓名求平均值等非法操作。

3.2 分组聚合统计

下面进行一些分组聚合的常见操作。

现在有三张表:

【MySQL数据库】SQL 查询封神之路:步步拆解核心操作,手把手帮你解锁高阶3

下面将将围绕着这三张表进行各种操作。

根据上面的要求我们可以知道我们要对emp职工表进行操作,并且还需要对该表中的成员进行分组,按照部门进行分组。

  • 语法:group by 列名来进行分组。

【MySQL数据库】SQL 查询封神之路:步步拆解核心操作,手把手帮你解锁高阶3

  1. 通过指定列名,将列名相同的作为一组,将这张表中的数据分为多组,可以理解为该表被分为了多张小表
  2. 再对每一个小表执行聚合函数输出结果。
  • 注意:在进行分组后,并不是所有数据都可以进行显示的,即select后面不能随便跟列名,必须是能够进行聚合的列才能进行显示

要进行分组,并且需要进行两次分组:

【MySQL数据库】SQL 查询封神之路:步步拆解核心操作,手把手帮你解锁高阶3

依旧是需要对部门进行分组,此时对于分组后的数据还需要进行筛选,可以使用having来分组后形成的表进行筛选:

【MySQL数据库】SQL 查询封神之路:步步拆解核心操作,手把手帮你解锁高阶3

  1. where是对于具体的任意列进行条件筛选的;而having是对分组聚合以后形成的结构进行聚合的;
  2. select语句中的执行顺序不一样,having在最后形成表后进行最后一步筛选,而where子句在第一步就进行行筛选。

以上就是分组聚合的所有内容。

阅读剩余
THE END