聚合函数概述
聚合函数对一组行做计算,返回一个汇总值。SQL 提供了五个核心聚合函数:COUNT() 统计行数、SUM() 求和、AVG() 求平均值、MAX() 找最大值、MIN() 找最小值。它们有一个共同特点:把多行"压缩"成一行。
聚合函数通常和 GROUP BY 搭配使用——先分组,再对每组做聚合。不加 GROUP BY 时,聚合函数把整张表当成一个组,返回一行汇总结果。SELECT 里如果既有普通列又有聚合函数,普通列必须出现在 GROUP BY 中,否则数据库不知道该取哪一行的值。
所有聚合函数都会自动忽略 NULL 值(COUNT(*) 除外),这一行为有时符合预期,有时需要额外处理。
以飞翔科技为例,先看几个不分组的基础聚合:
-- 公司总共有多少员工
SELECT COUNT(*) AS 员工总数 FROM employees;
-- 技术部最高工资
SELECT MAX(basic_salary) AS 最高工资
FROM employees
WHERE dept_code = 2;
-- 飞翔小店商品平均价格
SELECT AVG(price) AS 均价
FROM products
WHERE shop_name = '飞翔小店';
-- 所有租房合同的总月租
SELECT SUM(monthly_rent) AS 月租总和
FROM rental_contracts;
聚合函数是数据分析的基石。后面几篇会逐一展开每个函数的细节和注意事项。