在本教程中,您将了解sql聚合函数,包括:avg()
,count()
,min()
,max()
和sum()
。
sql聚合函数计算一组值并返回单个值。 例如,平均函数(avg
)采用值列表并返回平均值。
因为聚合函数对一组值进行操作,所以它通常与select
语句的group by子句一起使用。 group by
子句将结果集划分为值分组,聚合函数为每个分组返回单个值。
select c1, aggregate_function(c2)
from table
group by c1;
以下是常用的sql聚合函数:
除count()
函数外,sql聚合函数忽略null
值。只能将聚合函数用作表达式,如下所示:
select
语句的选择列表,子查询或外部查询。avg()
函数返回集合中的平均值,以下是avg()
函数的语法:
avg( all | distinct)
all
关键字指示avg()
函数计算所有值的平均值,而distinct
关键字强制函数仅对不同的值进行操作。 默认情况下,使用all
选项。
以下示例演示如何使用avg()
函数计算每个部门的平均工资:
select
department_name, round(avg(salary), 0) avg_salary
from
employees
inner join
departments using (department_id)
group by department_name
order by department_name;
执行上面示例代码,得到以下结果 -
min()
函数返回集合的最小值。 以下是min()
函数的语法:
min(column | expression)
例如,以下语句返回每个部门中员工的最低工资:
select
department_name, min(salary) min_salary
from
employees
inner join
departments using (department_id)
group by department_name
order by department_name;
执行上面示例代码,得到以下结果 -
max()
函数返回集合的最大值,max()
函数具有以下语法:
max(column | expression)
例如,以下语句返回每个部门中员工的最高薪水:
select
department_name, max(salary) highest_salary
from
employees
inner join
departments using (department_id)
group by department_name
order by department_name;
执行上面示例代码,得到以下结果 -
count()
函数返回集合中的项目数。 以下显示了count()
函数的语法:
count ( [all | distinct] column | expression | *)
例如,以下示例使用count(*)
函数返回每个部门的人数:
select
department_name, count(*) headcount
from
employees
inner join
departments using (department_id)
group by department_name
order by department_name;
执行上面示例代码,得到以下结果:
sum()
函数返回所有值的总和。 以下说明了sum()
函数的语法:
sum(all | distinct column)
例如,以下语句返回每个部门中所有员工的总薪水:
select
department_id, sum(salary)
from
employees
group by department_id;
执行上面示例代码,得到以下结果:
在本教程中,您学习了最常用的sql聚合函数,包括:avg()
,count()
,min()
,max()
和sum()
函数。