如何在mysql中使用SUM计算总和

来源:这里教程网 时间:2026-02-28 20:20:14 作者:

在 MySQL 中使用 SUM() 函数可以对某一列的数据进行求和,常用于统计数值型字段的累计值。这个函数会忽略 NULL 值,只计算非 NULL 的记录。

基本语法

SELECT SUM(列名) FROM 表名 WHERE 条件;

其中,SUM() 作用于数值类型的列,比如 INT、DECIMAL、FLOAT 等。

简单求和示例

假设有一张名为 orders 的表:

+----+---------+--------+
| id | product | amount |
+----+---------+--------+
|  1 | A       | 100    |
|  2 | B       | 150    |
|  3 | C       | 200    |
+----+---------+--------+

要计算所有订单的总金额:

SELECT SUM(amount) AS total_amount FROM orders;

结果返回:

+--------------+
| total_amount |
+--------------+
| 450          |
+--------------+

配合条件筛选求和

如果只想计算满足特定条件的总和,可以用 WHERE 子句。

例如,只计算金额大于 100 的订单总和:

SELECT SUM(amount) AS filtered_total FROM orders WHERE amount > 100;

结果为:

+----------------+
| filtered_total |
+----------------+
| 350            |
+----------------+

结合 GROUP BY 分组求和

当需要按某个字段分组统计时,使用 GROUP BY 配合 SUM()。

例如,表中增加一个 category 字段:

+----+---------+----------+--------+
| id | product | category | amount |
+----+---------+----------+--------+
|  1 | A       | 电子     | 100    |
|  2 | B       | 家电     | 150    |
|  3 | C       | 电子     | 200    |
+----+---------+----------+--------+

按类别统计总金额:

SELECT category, SUM(amount) AS total FROM orders GROUP BY category;

结果:

+----------+-------+
| category | total |
+----------+-------+
| 电子     | 300   |
| 家电     | 150   |
+----------+-------+

基本上就这些。只要数据类型正确,SUM() 使用起来很直接,适合做各种汇总统计。注意避免对非数值列使用,否则可能得到意外结果或警告。

相关推荐