COUNT、SUM、AVG是常用SQL聚合函数,分别用于统计行数、求和与计算平均值。COUNT(*)统计所有行,COUNT(列名)统计非NULL值,COUNT(DISTINCT 列名)统计去重后的非NULL值;SUM对数值列求和,忽略NULL,仅适用于数值类型;AVG计算平均值,为SUM除以非NULL行数。这些函数可单独使用或与GROUP BY结合分组统计,常配合WHERE筛选数据。正确处理NULL值可避免结果偏差,满足多数基础统计需求。

SQL 聚合函数用于对一组值执行计算并返回单个值。常用的聚合函数有 COUNT、SUM 和 AVG,它们通常与 GROUP BY 子句一起使用,也可以单独使用。
COUNT:统计行数
COUNT 用来统计满足条件的行数。
- COUNT(*) 统计所有行,包括 NULL 值。
- COUNT(列名) 统计该列非 NULL 的行数。
- COUNT(DISTINCT 列名) 统计该列中不同(去重)且非 NULL 的值的个数。
例如,统计员工表中有多少人:
COUNT(*) FROM employees;
统计有上级领导的员工数量:
COUNT(manager_id) FROM employees;
统计不同部门的数量:
COUNT(DISTINCT department_id) FROM employees;
SUM:求和
SUM 计算某列数值的总和,忽略 NULL 值。
- 只能用于数值类型的列。
- 如果所有值都是 NULL,结果为 NULL。
例如,计算所有员工的工资总和:
SUM(salary) FROM employees;
计算销售部门员工的工资总和:
SUM(salary) FROM employees WHERE department = 'Sales';
AVG:计算平均值
AVG 返回某列的平均值,自动忽略 NULL 值。
- 同样只适用于数值类型。
- 是 SUM 除以 COUNT 的结果(非 NULL 个数)。
例如,计算员工的平均工资:
AVG(salary) FROM employees;
按部门分组查看平均工资:
department_id, AVG(salary) FROM employees GROUP BY department_id;
基本上就这些。用好这三个函数,配合 GROUP BY 和 WHERE,就能完成大多数基础统计需求。注意处理 NULL 值的影响,避免误判结果。










