SQL SUM() 函数
The SQL SUM() 函数计算特定列中所有字段(数值类型)的总和。如果指定的行不存在,则该函数返回 NULL。
如果使用 DISTINCT 关键字,该函数将计算并返回给定列的唯一值的总和。
一般而言,聚合是将一组对象视为单个实体的考虑因素。MySQL 提供了一组聚合函数,它们对表的列的所有实体进行操作,将它们视为单个单元。
语法
以下是 SQL SUM() 函数的语法:
SUM(column_name)
参数
- column_name − 需要计算总和的列的名称。
示例
假设我们已经创建了一个名为CUSTOMERS的表,如下所示 −
create table CUSTOMERS(ID INT NOT NULL,
NAME VARCHAR(20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(25),
SALARY DECIMAL(18, 2),
PRIMARY KEY(ID));
让我们将r值插入其中 –
insert INTO CUSTOMERS VALUES(1, 'Ramesh', 32, 'Ahmedabad', 2000.00);
insert INTO CUSTOMERS VALUES(2, 'Khilan', 25, 'Delhi', 1500.00);
insert INTO CUSTOMERS VALUES(3, 'kaushik', 23, 'Kota', 2000.00);
insert INTO CUSTOMERS VALUES(4, 'Chaitali', 25, 'Mumbai', 6500.00);
insert INTO CUSTOMERS VALUES(5, 'Hardik', 27, 'Bhopal', 8500.00);
insert INTO CUSTOMERS VALUES(6, 'Komal', 22, 'MP', 4500.00);
insert INTO CUSTOMERS VALUES(7, 'Muffy', 24, 'Indore', 10000.00);
表将被创建为 −
+----+----------+-----+-----------+----------+
| 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 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
以下查询计算所有客户工资的总和−
SELECT SUM(SALARY) as summation
from CUSTOMERS
输出
+-----------+
| summation |
+-----------+
| 35000.00 |
+-----------+
示例
现在,假设根据上面的表格,我们想要计算客户的年龄的不重复总和,那么我们可以简单地使用以下查询来实现 –
SELECT SUM(DISTINCT AGE) as summation
from CUSTOMERS
输出
+------------------+
| summation |
+------------------+
| 153 |
+------------------+
示例
在这里,我们正在尝试获取年龄大于24岁的所有顾客薪水的总和 –
SELECT SUM(Salary) AS summation
FROM CUSTOMERS
WHERE AGE > 24;
上面的代码的输出结果如下:
+------------------+
| summation |
+------------------+
| 18500.00 |
+------------------+
示例
以下查询返回所有工资大于5000的客户的年龄。由于有两个年龄相同的客户,其中一个的工资大于5000,所以他们的工资被累加-
SELECT AGE,
SUM(SALARY) as sal_sum
from CUSTOMERS
GROUP BY AGE
HAVING SUM(SALARY)> 5000;
输出
+-----+----------+
| AGE | sal_sum |
+-----+----------+
| 24 | 10000.00 |
| 25 | 8000.00 |
| 27 | 8500.00 |
+-----+----------+