一、核心特性
1. 不能嵌套使用,比如不能写 avg(sum(字段名称)) 这样的形式。
2. 处理 null 值时会忽略,不将其纳入计算。
3. 数据类型兼容性: avg、sum 仅支持数值类型; min、max、count 支持任意数据类型。
二、常用聚合函数说明
1. avg([distinct] 列名):计算某一列的平均值,仅适用于数值类型字段。
2. sum([distinct] 列名):计算某一列的和,仅适用于数值类型字段。
3. min([distinct] 列名):计算某一列的最小值,支持任意数据类型。
4. max([distinct] 列名):计算某一列的最大值,支持任意数据类型。
5. count([(*/1)/(distinct/all)] 列名):统计记录数。
count(列名)统计该列非null值的数量
count(1)统计所有记录数(包括重复、含null的行)
distinct 可与列名结合(如 count(distinct 列名)),但不能与 * 结合。
三、语法示例
1. 计算薪资的平均、最小、最大及总和:
select avg(salary), min(salary), max(salary), sum(salary)
from t_employee;
2. 基于生日计算员工年龄的极值(日期类型聚合):
select min(birthday) as 年龄最大员工的生日, max(birthday) as 年龄最小的员工生日
from t_employee;
3. 对比不同 COUNT 用法的统计结果
select count(*), count(1), count(commission_pct)
from t_employee;