在本教程中,您将了解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
语句的选择列表,子查询或外部查询。- 一个HAVING子句
1. AVG()函数
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;
执行上面示例代码,得到以下结果 -
2. MIN()函数
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;
执行上面示例代码,得到以下结果 -
3. MAX()函数
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;
执行上面示例代码,得到以下结果 -
4. COUNT()函数
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;
执行上面示例代码,得到以下结果:
5. SUM()函数
SUM()
函数返回所有值的总和。 以下说明了SUM()
函数的语法:
SUM(ALL | DISTINCT column)
例如,以下语句返回每个部门中所有员工的总薪水:
SELECT
department_id, SUM(salary)
FROM
employees
GROUP BY department_id;
执行上面示例代码,得到以下结果:
在本教程中,您学习了最常用的SQL聚合函数,包括:AVG()
,COUNT()
,MIN()
,MAX()
和SUM()
函数。
上一篇:
SQL自连接
下一篇:
SQL Avg()函数