信息发布→ 登录 注册 退出

如何在mysql中使用聚合函数_mysql聚合函数基础介绍

发布时间:2026-01-11

点击量:
MySQL聚合函数用于对一组值计算并返回单个结果,常配合GROUP BY分组统计,包括COUNT()计数、SUM()求和、AVG()求平均、MAX()/MIN()取最值,HAVING用于过滤分组后结果。

MySQL 中的聚合函数用于对一组值进行计算并返回单个结果,比如求和、计数、平均值等。它们通常配合 GROUP BY 子句使用,也可以单独用于整张表的统计。

常用聚合函数及基本用法

以下是 MySQL 最常用的几个聚合函数及其典型场景:

  • COUNT():统计行数。可统计所有行(COUNT(*)),也可统计某列非 NULL 值的数量(COUNT(列名))。
  • SUM():计算数值列的总和,忽略 NULL 值。
  • AVG():计算数值列的平均值,自动跳过 NULL。
  • MAX() / MIN():分别返回列中的最大值和最小值,支持数值、日期、字符串类型。

GROUP BY 与聚合函数配合使用

当需要按类别分组统计时,必须用 GROUP BY 指定分组依据,否则会报错(SQL mode 严格模式下)。

例如:查询每个部门的员工人数和平均薪资:

SELECT dept_id, COUNT(*) AS emp_count, AVG(salary) AS avg_salary
FROM employees
GROUP BY dept_id;

注意:SELECT 中所有非聚合字段都必须出现在 GROUP BY 中,否则语句非法。

HAVING 过滤分组结果

WHERE 在分组前过滤行,HAVING 则在分组后对聚合结果进行条件筛选。

例如:只显示员工数超过 5 人的部门:

SELECT dept_id, COUNT(*) AS emp_count
FROM employees
GROUP BY dept_id
HAVING COUNT(*) > 5;

不能把 > 5 写在 WHERE 后,因为 COUNT(*) 是分组后的结果,WHERE 看不到它。

聚合函数的注意事项

使用时需留意以下细节:

  • 所有聚合函数自动忽略 NULL 值(COUNT(*) 除外,它统计所有行)。
  • 对字符串列使用 MAX()/MIN() 会按字典序比较,不是按长度。
  • AVG()SUM() 要求列是数值类型,否则可能隐式转换或报错。
  • 聚合函数不能嵌套,如 COUNT(MAX(id)) 是非法的。
标签:# 严格模式  # 则在  # 看不  # 能把  # 只显示  # 也可  # 出现在  # 子句  # 几个  # 串列  # 报错  # mysql  # 字符串类型  # 值类型  # 字符串  # select  # count  # NULL  # sql  # 隐式转换  # 聚合函数  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!