答案:SUM()函数用于计算数值字段总和,忽略NULL值。基本语法为select SUM(字段名) FROM 表名;可结合WHERE筛选条件求和,如SELECT SUM(price) FROM orders WHERE quantity > 1;使用GROUP BY按字段分组统计,如按商品名称汇总数量;为防止无匹配记录时返回NULL,可用IFNULL(SUM(price), 0)确保结果为0。

在 mysql 中使用 SUM() 函数可以轻松计算某个数值字段的总和。这个函数会忽略 NULL 值,只对非空的数值进行累加。
基本语法
SELECT SUM(字段名) FROM 表名;
例如,假设有一张名为 orders 的表,包含以下字段:
- id
- product_name
- price
- quantity
你想统计所有订单中 price 字段的总和,可以这样写:
SELECT SUM(price) AS total_price FROM orders;
查询结果会返回一个名为 total_price 的列,显示 price 字段的总和。
结合 WHERE 条件筛选求和
如果只想对满足特定条件的数据求和,可以在查询中加入 WHERE 子句。
SELECT SUM(price) AS total_price FROM orders WHERE quantity > 1;
这条语句会计算所有数量大于 1 的订单的总价之和。
与 GROUP BY 配合分组求和
若需要按某一字段分组后分别计算每组的总和,使用 GROUP BY。
SELECT product_name, SUM(quantity) AS total_quantity FROM orders GROUP BY product_name;
这会列出每个商品名称及其对应的销售总量。
处理可能为 NULL 的情况
SUM() 本身会自动跳过 NULL 值,但如果你希望确保结果在无数据时返回 0 而不是 NULL,可以用 IFNULL 或 COALESCE:
SELECT IFNULL(SUM(price), 0) AS total_price FROM orders WHERE id = 999;
当没有匹配记录时,SUM 返回 NULL,IFNULL 将其转换为 0。
基本上就这些。只要字段是数值类型,SUM() 就能正常工作,搭配条件、分组和函数处理可以让统计更灵活。


