聚合函数对多行数据计算返回单值,如count、SUM、AVG;普通函数每行独立处理返回对应结果,如UPPER、ROUND;前者常用于分组统计,后者用于行级数据转换。

在mysql中,聚合函数和普通函数(也叫标量函数)的主要区别在于它们处理数据的方式和使用场景。
聚合函数:对一组值进行计算,返回单个结果
聚合函数用于对多行数据进行统计操作,通常配合 GROUP BY 子句使用,常见于需要汇总信息的查询中。
典型特点:
常见聚合函数:
- COUNT():统计行数
- SUM():求和
- AVG():计算平均值
- MAX():获取最大值
- MIN():获取最小值
示例:
SELECT COUNT(*) FROM users; — 统计用户总数
SELECT department, AVG(salary) FROM employees GROUP BY department;
普通函数:对每一行单独处理,返回对应结果
普通函数也称为标量函数,作用于每一行的单个值,每行输入对应一个输出。
典型特点:
- 每行数据独立处理
- 不会自动跨行聚合
- 可用于 SELECT、WHERE、ORDER BY 等子句中
常见普通函数:
- UPPER()、LOWER():字符串大小写转换
- ROUND():数值四舍五入
- DATE_FORMAT():日期格式化
- IFNULL()、COALESCE():处理空值
- CONCAT():字符串拼接
示例:
SELECT name, UPPER(email) FROM users; — 每行email转大写
SELECT price, ROUND(price, 2) FROM products;
关键区别总结
- 聚合函数处理“一组”数据,普通函数处理“一行一值”
- 聚合函数常导致结果行数减少(合并统计),普通函数保持原行数
- 在没有 GROUP BY 时,使用聚合函数会使所有行被视为一组
- 普通函数可以在任何数据行上直接调用,无需分组
基本上就这些。理解它们的核心差异有助于写出更准确的查询语句。


