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() 函数来计算所有客户的总薪资 -
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"列上使用 DISTINCT 关键字和 SUM() 函数来计算唯一薪资值的总和 -
SELECT SUM(DISTINCT SALARY) FROM CUSTOMERS;
输出
上述查询的输出如下所示 -
TotalSalary |
---|
33000.00 |