MySQL sum() 函数

17 Mar 2025 | 阅读 2 分钟

MySQL 的 sum() 函数用于返回表达式的总和值。如果结果集中没有行,则返回 NULL。它是 MySQL 中的一种聚合函数。

语法

以下是 MySQL 中 sum() 函数的语法

参数解释

aggregate_expression: 指定要计算总和的列或表达式。

table_name: 指定要从中检索记录的表。FROM 子句中必须至少列出一个表。

WHERE conditions: 这是可选的。它指定必须满足的条件才能选择记录。

MySQL sum() 函数示例

假设我们的数据库中有一个名为 employees 的表,其中包含以下数据。现在,我们将通过各种示例来理解此函数

mysql sum()

1. 基本示例

执行以下查询,计算表中所有员工的总工作小时数

输出

我们将得到如下结果

mysql sum()

2. 带有 WHERE 子句的 MySQL sum() 函数

此示例用于根据 WHERE 子句中指定的条件返回结果。执行以下查询以计算 working_hours >= 12 的员工的总工作小时数。

输出

此语句将给出以下输出

mysql sum()

3. 带有 GROUP BY 子句的 MySQL sum() 函数

我们还可以将 SUM() 函数与 GROUP BY 子句一起使用,以返回每个组的总和值。例如,此语句使用 SUM() 函数和 GROUP BY 子句计算每个员工的总工作小时数,如下面的查询所示

输出

在这里,我们可以看到每个员工的总工作小时数是根据他们的职业进行分组计算的。

mysql sum()

4. 带有 HAVING 子句的 MySQL sum() 函数

HAVING 子句用于在 MySQL 中使用 sum() 函数 过滤 组。执行以下语句,该语句计算所有员工的工作小时数,按职业进行分组,并返回 Total_working_hours>24 的结果。

输出

mysql sum()

5. 带有 DISTINCT 子句的 MySQL sum() 函数

MySQL 使用 DISTINCT 关键字删除列名中的 重复 行。此子句也可以与 sum() 函数一起使用,以返回表中唯一记录的总和值。

执行以下查询,该查询删除 employee 表的 working_hours 列中的重复记录,然后计算总和

输出

mysql sum()
下一主题MySQL average()