摘要:本教程将指导你了解有关 SQL 聚合函数的知识,包括 AVG()
、COUNT()
、MIN()
、MAX()
和 SUM()
。
SQL 聚合函数对一组值进行计算并返回一个单独值。例如,平均值函数 ( AVG
) 获取一个值列表并返回其平均值。
由于聚合函数是对一组值进行操作的,因此通常会与 GROUP BY
子句一起使用 SELECT
语句。GROUP BY
子句将结果集划分为值组,聚合函数为每个组返回一个单独的值。
以下是聚合函数与 GROUP BY
子句结合使用的方式说明。
SELECT c1, aggregate_function(c2)
FROM table
GROUP BY c1;
Code language: SQL (Structured Query Language) (sql)
以下是常用的 SQL 聚合函数
除了 COUNT()
函数外,SQL 聚合函数都会忽略空值。
你只能在下述位置使用聚合函数作为表达式
AVG
AVG()
函数会返回一组的平均值。以下是 AVG()
函数的语法说明。
AVG( ALL | DISTINCT)
Code language: SQL (Structured Query Language) (sql)
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;
Code language: SQL (Structured Query Language) (sql)

MIN
MIN()
函数返回一组的最小值。以下是 MIN()
函数的语法说明。
MIN(column | expression)
Code language: SQL (Structured Query Language) (sql)
例如,以下语句返回每个部门中员工的最小薪资
SELECT
department_name, MIN(salary) min_salary
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;
Code language: SQL (Structured Query Language) (sql)

MAX
MAX()
函数返回一组的最大值。MAX()
函数具有以下语法
MAX(column | expression)
Code language: SQL (Structured Query Language) (sql)
例如,以下语句返回每个部门中员工的最大薪资
SELECT
department_name, MAX(salary) highest_salary
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;
Code language: SQL (Structured Query Language) (sql)

COUNT
COUNT()
函数会返回一组中项目的数目。以下是 COUNT()
函数的语法说明。
COUNT ( [ALL | DISTINCT] column | expression | *)
Code language: SQL (Structured Query Language) (sql)
例如,以下示例使用 COUNT(*)
函数返回每个部门的员工人数
SELECT
department_name, COUNT(*) headcount
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;
Code language: SQL (Structured Query Language) (sql)

SUM
SUM()
函数会返回所有值的总和。以下是 SUM()
函数的语法说明。
SUM(ALL | DISTINCT column)
Code language: SQL (Structured Query Language) (sql)
例如,以下语句返回每个部门所有员工的总薪资
SELECT
department_id, SUM(salary)
FROM
employees
GROUP BY department_id;
Code language: SQL (Structured Query Language) (sql)

在本教程中,你已学习了最常用的 SQL 聚合函数,包括 AVG()
、COUNT()
、MIN()
、MAX()
和 SUM()
函数。