跳转到主要内容
模块 2 · 第 4 课(共 4)课程中的8/57~8 min
模块课程(4/4)

计数和汇总:COUNT、AVG、MAX

到目前为止,每个 SELECT 为表的每一行返回一行。 聚合函数执行相反的操作:它们读取许多行并返回 总结它们的单个值。

最常见的是:

  • COUNT(*) — 有多少行。
  • AVG(column) — 数值的平均值(忽略 NULL)。
  • MAX(column) / MIN(column) — 最大值/最小值。
  • SUM(column) — 数值之和。
SQL
SELECT COUNT(*),
       AVG(salary),
       MAX(salary)
FROM employees;

当聚合应用于整个表时(没有 GROUP BY,这 您将在下一个模块中看到)结果是单行,无论如何 源表有多少行。

与 WHERE 结合

WHERE 过滤器在聚合之前:聚合仅适用于行 通过过滤器的。

SQL
-- Stipendio medio dei soli dipendenti del Marketing (department_id = 3):
SELECT AVG(salary)
FROM employees
WHERE department_id = 3;

尝试一下

锻炼#sql.m2.l4.e1
尝试:0加载中...

自 2020 年 1 月 1 日以来已雇用了多少员工?返回单个数字(一行,一列)。

正在加载编辑器...
显示提示

计算行数的函数是 COUNT(*)。

3 次尝试后可用的解决方案

复习练习

锻炼#sql.m2.l4.e2
尝试:0加载中...

在单个查询中,计算营销部门 (department_id = 3) 员工的平均 (AVG) 和最高 (MAX) 工资。一行,两列。

正在加载编辑器...
显示提示

您可以将多个聚合函数放在同一个 SELECT 中,并用逗号分隔。

3 次尝试后可用的解决方案