当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MySQL sum()用法及代码示例


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

用法

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

SELECT SUM(aggregate_expression)  
FROM tables  
[WHERE conditions];

参数说明

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

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

WHERE 条件:可选。它指定要选择的记录必须满足的条件。

MySQL sum() 函数示例

考虑我们的数据库有一个名为员工的表,其中包含以下数据。现在,我们将通过各种示例来理解这个函数:

mysql sum()

1. 基本示例

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

mysql> SELECT SUM(working_hours) AS "Total working hours" FROM employees;

输出:

我们将得到如下结果:

mysql sum()

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

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

mysql> SELECT SUM(working_hours) AS "Total working hours" FROM employees WHERE working_hours>=12;

输出:

该语句将给出如下输出:

mysql sum()

3. MySQL sum() 函数与 GROUP BY 子句

我们还可以使用带有 GROUP BY 子句的 SUM() 函数来返回每个组的总和值。例如,此语句使用带有 GROUP BY 子句的 SUM() 函数计算每个员工的总工作时间,如以下查询所示:

mysql> SELECT emp_id, emp_name, occupation, SUM(working_hours) AS "Total working hours" FROM employees GROUP BY occupation;

输出:

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

mysql sum()

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

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

mysql> SELECT emp_id, emp_name, occupation, 
SUM(working_hours) Total_working_hours 
FROM employees 
GROUP BY occupation 
HAVING SUM(working_hours)>24;

输出:

mysql sum()

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

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

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

mysql> SELECT emp_name, occupation, 
SUM(DISTINCT working_hours) Total_working_hours
FROM employees 
GROUP BY occupation;

输出:

mysql sum()



相关用法


注:本文由纯净天空筛选整理自 MySQL sum() function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。