帮助中心/最新通知

质量为本、客户为根、勇于拼搏、务实创新

< 返回文章列表

【服务器相关】深入了解MySQL中聚合函数的使用

发表时间:2025-06-16 03:46:00 小编:油条
  • 聚合函数综合练习 -1
  • 聚合函数综合练习 -2
  • 今天的章节我们将要来学习一下 “聚合函数” ;首先我们需要学习聚合函数对数据进行统计分析,比如说求最大值、最小值、平均值之类的场景。但是单纯的使用聚合函数,只能做全表范围的统计分析。如果想要把记录分组分别统计,需要使用 “GROUP BY” 和 “HAVING” 这样的分组子句了。关于分组查询的应用,将在下一章节为大家进行讲解。当前章节我们还是学习一下 “聚合函数” 的基本使用。

    什么是聚合函数

    聚合函数是用来做简单的数据统计的,比如说统计一下 “员工表” 中的平均工龄是多少年啊,员工表中一共有多少条记录等等… 这些都需要使用到聚合函数。

    聚合函数也被称为 “汇总函数” ,在数据的查询分析中,应用的十分广泛。可以帮助我们实现对数据的求和、求最大值、求最小值、求平均值等等。

    如果不指定统计的范围,那么聚合函数统计的范围就是整张数据表,该章节我们所讲解的 “聚合函数” 就是针对整张数据表范围的。

    聚合函数演示案例:(求员工表中的平均月收入是多少?)

    PS:需要注意的地方,在聚合函数的返回结果集(无论是求和、最大值、最小值、还是求平均数),结果集只有一个返回数据。

    SUM 函数

    SUN 函数用于求和,只能用于数字类型;如果用于字符类型的数据,则统计结果为0;如果用于时间类型的数据的求和,则结果是毫秒数的相加。

    SQL 语句演示 SUM函数 案例(统计 10、20 部门的员工的月薪的总和)

    SQL 语句演示 SUM函数 案例(统计 ename(字段) 的综合 )

    MAX 函数

    MAX 函数用于获取非空值的最大值。

    SQL 语句演示 MAX函数 案例(查询 员工姓名 最长的名字的长度)

    MIN 函数

    与MAX 函数对应的是 MIN 函数,用于获得非空值的最小值。

    SQL语句演示 MIN函数 案例(查询 员工编号最小 的员工)

    AVG 函数

    在上文我们已经演示过了 AVG 函数的使用方法,AVG 函数是用于获得非空值的平均值;如果用于非数字数据的统计,输出结果为 0 。
    聚合函数演示案例:(求员工表中的平均月收入是多少?)

    COUNT 函数

    COUNT 函数用于获得记录的数量,COUNT 函数有两种用法。

    第一种:在 COUNT() 函数的 括号内,输入一个 “*” 即可,记录下包含空值的查询记录的数量。示例:COUNT(*)

    第二种:在 COUNT() 函数的 括号内,输入要统计的列名即可,记录下包含非空值的查询的记录的数量。示例:COUNT(列名)

    SQL语句演示 COUNT(*) 案例

    SQL语句演示 COUNT(列名) 案例

    聚合函数综合小练习

    聚合函数综合练习 -1

    SQL 案例1 – 语句演示:(查询 10、20部门中,底薪超过 2000 并且工龄超过 15年 的员工人数)

    聚合函数综合练习 -2

    SQL 案例2 – 语句演示:(查询 1985年之后入职的员工,并且底薪超过公司平均底薪的员工的数量)


    SELECT COUNT(*)
    FROM t_emp
    WHERE hiredate >= “1985-01-01”
    AND sal >= AVG(sal)

    PS:表面上看这个 SQL 是正常的,但是这个 SQL 语是无法得出想要的结果的,因为语法上有错误。WHERE 子句中出现了聚合函数,这一点大家一定要注意,聚合函数 一定不能出现在 WHERE 子句中。

    PS:WHERE 子句中不能出现 聚合函数 的根本原因还要从 子句的执行顺序来说起。sql语句的执行过程是:from–>where–>group by –>having — >order by –> select;

    PS:聚合函数是针对结果集进行的,但是where条件并不是在查询出结果集之后运行,所以主函数放在where语句中,会出现错误。

    PS:关于如何解决这个问题,将在下一章节的 "分组查询的应用" 进行详细的讲解。

    本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!


    联系我们
    返回顶部