MySQL sum() 函数

MySQL sum() 函数

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

语法

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

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

参数说明

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

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

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

MySQL sum()函数示例

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

MySQL sum() 函数

1. 基本示例

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

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

输出:

我们将得到以下结果:

MySQL sum() 函数

2. 使用WHERE子句的MySQL sum()函数

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

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

输出:

这个语句将会得到以下的输出:

MySQL sum() 函数

3. 使用GROUP BY子句的MySQL sum()函数

我们还可以使用带有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. MySQL sum()函数与HAVING子句

HAVING子句用于在MySQL中对sum()函数进行筛选。执行下面的语句,计算所有员工的工作小时数,根据他们的职业进行分组,并返回总工作小时数大于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()函数一起使用,以返回表中存在的唯一记录的总和值。

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

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

输出:

MySQL sum() 函数

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程