贝利信息

mysql集合函数有哪些常用类型_mysql统计函数入门

日期:2026-01-24 00:00 / 作者:P粉602998670
MySQL中高频聚合函数有6个:COUNT()、SUM()、AVG()、MAX()、MIN()、GROUP_CONCAT(),均需配合GROUP BY使用(全表聚合除外),且对NULL统一忽略。

MySQL 里没有叫“集合函数”的官方分类,你实际想查的是 聚合函数(Aggregate Functions)——也就是用来对一组行做统计计算、返回单个值的函数。别被

“集合”这个词带偏了,它不是指数学里的 set 操作(比如交集/并集),而是“把多行聚合成一个结果”的意思。

哪些是真正高频使用的聚合函数?

日常开发和报表中,以下 6 个几乎天天见,且必须配合 GROUP BY 使用(除非全表聚合):

SELECT dep AS 部门,
       COUNT(*) AS 员工数量,
       SUM(salary) AS 薪资总和,
       AVG(salary) AS 平均薪资,
       MAX(salary) AS 最高薪资,
       MIN(salary) AS 最低薪资,
       GROUP_CONCAT(name ORDER BY salary DESC SEPARATOR ' | ') AS 员工名单
FROM emp
GROUP BY dep;

容易踩的坑:NULL、空组、类型隐式转换

聚合函数对 NULL 的处理很统一(基本都跳过),但新手常栽在这几个点上:

进阶但实用:条件聚合与窗口函数

真要实现“同一行里算多个维度的统计”,别硬套子查询,优先用:

SELECT name, dep, salary,
       COUNT(*) OVER (PARTITION BY dep) AS 部门人数,
       AVG(salary) OVER (PARTITION BY dep) AS 部门平均薪资
FROM emp;

记住一点:聚合函数本质是“降维操作”,一旦用了 GROUP BY,SELECT 列里所有非聚合字段都必须出现在 GROUP BY 子句中,否则 MySQL 8.0+ 会直接报错(严格模式默认开启)。这不是 bug,是防止语义模糊的设计约束。