SUM()是MySQL中用于数值列求和的聚合函数,基本语法为SELECT SUM(列名) FROM 表名;可结合WHERE筛选条件,如SELECT SUM(amount) FROM orders WHERE status='paid';使用GROUP BY按字段分组求和,如按用户或月份统计:SELECT user_id, SUM(amount) FROM orders GROUP BY user_id;支持DATE_FORMAT按月汇总,并可用IFNULL处理NULL值,确保返回默认值0;注意SUM仅适用于数值类型,配合HAVING可过滤分组结果,如HAVING SUM(amount)>1000。

在 MySQL 中,SUM() 是一个聚合函数,用来对某一列的数值进行求和。它通常用在 SELECT 语句中,配合 GROUP BY、WHERE 等子句实现更灵活的数据统计。
基本语法
SELECT SUM(列名) FROM 表名;例如,有一个订单表 orders,包含字段 amount(订单金额),你想计算所有订单的总金额:
SELECT SUM(amount) AS total_amount FROM orders;这会返回一个结果,total_amount 字段就是所有 amount 的总和。
结合 WHERE 条件筛选求和
如果只想对满足条件的数据求和,可以加 WHERE 子句。
SELECT SUM(amount) AS total_amount FROM orders WHERE status = 'paid';这条语句只计算状态为“已支付”的订单金额总和。
按分组求和(使用 GROUP BY)
当你需要按某个字段分组统计时,比如按用户或按月份统计总金额,使用 GROUP BY。
产品简介: 网奇IOS智能订单系统,是网奇公司研发的一款智能在线订单编辑以及管理系统。本系统适合使用在;在线报名、酒店预定、信息反馈、在线订单和在线投诉等等诸多应用上。本系统所有选项字段完全通过后台控制,在线报名系统可以变为在线预定系统,同时可以变为任何其它的系统,里面的栏目字段,可以任意添加、删除、 修改。本系统为网奇公司全国独家首创,顺应网络需求,安装十分便利,上传即可使用。产品特色:
这会返回每个用户的订单金额总和。
也可以按月份统计:
SELECT DATE_FORMAT(order_date, '%Y-%m') AS month, SUM(amount) AS monthly_total FROM orders GROUP BY month ORDER BY month;处理 NULL 值
SUM() 函数会自动忽略 NULL 值。如果某行该列是 NULL,不会影响求和结果。但如果整列都为 NULL,SUM 返回 NULL。
你可以用 IFNULL 避免返回 NULL:
SELECT IFNULL(SUM(amount), 0) AS total_amount FROM orders WHERE 1=0;这样即使没有数据,也会返回 0 而不是 NULL。
注意事项
- SUM() 只能用于数值类型的列(如 INT、DECIMAL、FLOAT 等)
- 在使用 GROUP BY 时,SELECT 中非聚合字段一般应出现在 GROUP BY 中
- 可以用 HAVING 对分组后的结果进一步筛选,例如:HAVING SUM(amount) > 1000









