MySQL - SUM() 函数



MySQL 的SUM()函数是一个聚合函数,用于计算特定列/字段中所有值的总和。如果指定的行不存在,则此函数返回NULL

如果您在 MySQL 中使用 SUM() 函数,请务必记住以下几点 -

  • 如果您在 SELECT 语句中使用 SUM() 函数,而该语句不返回任何行,则 SUM() 函数返回 NULL,而不是零。

  • 如果您使用 DISTINCT 关键字,则此函数将计算并返回给定列的唯一值的总和。

  • SUM() 函数在计算中忽略 NULL 值。

语法

以下是 MySQL SUM() 函数的语法 -

SUM(expr);

参数

此方法接受一个参数。下面描述了该参数 -

  • expr: 我们要计算总和的表达式或列。

返回值

此方法计算并返回特定列/字段中所有值的总和。

示例

首先,让我们使用 CREATE TABLE 语句创建一个名为CUSTOMERS的表,如下所示 -

CREATE TABLE CUSTOMERS (
   ID INT AUTO_INCREMENT,
   NAME VARCHAR(20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

使用以下查询,我们将 7 条记录插入到上面创建的表中 -

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES 
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

要显示插入的所有记录,请执行以下查询 -

Select * From CUSTOMERS;

以下是 CUSTOMERS 表 -

ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

现在,我们使用 MySQL SUM() 函数来计算所有客户的总 SALARY -

SELECT SUM(SALARY) From CUSTOMERS;

输出

这将产生以下结果 -

SUM(SALARY)
35000.00

示例

如果我们在任何不返回记录(即空结果集)的列上使用 MySQL SUM() 函数,则 SUM() 函数返回 NULL,而不是零 -

SELECT SUM(SALARY) as TotalSalary
FROM CUSTOMERS
WHERE NAME = 'Varun';

输出

以上查询将返回 NULL,因为客户“Varun”不存在。

TotalSalary
NULL

示例

在以下查询中,我们对“SALARY”列使用 SUM() 函数以及 DISTINCT 关键字来计算唯一薪资值的总和 -

SELECT SUM(DISTINCT SALARY) FROM CUSTOMERS;

输出

以上查询的输出如下所示 -

TotalSalary
33000.00
广告