SUM()函数用于求和数值列,忽略NULL值。语法为select SUM(列名) FROM 表名 WHERE 条件;可结合WHERE筛选条件求和,或用GROUP BY按字段分组统计,如按类别汇总金额。

在 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() 使用起来很直接,适合做各种汇总统计。注意避免对非数值列使用,否则可能得到意外结果或警告。