在数据分析的世界中,SUM函数是最常用且强大的聚合函数之一。本文将深入探讨MySQL中SUM函数的使用方法,帮助读者全面理解和灵活运用这一重要的数据处理工具。
什么是SUM函数?
SUM函数是MySQL中用于计算数值列总和的聚合函数。它可以快速求出指定列中所有数值的累加结果。
MySQL SUM 函数语法
SELECT SUM(column) FROM TableName;
复制
我们将使用以下的员工表(Employee)来理解 MySQL SUM 函数的用法。
创建和填充员工表
请使用以下 SQL 脚本创建并填充员工表,数据内容为中文:
CREATE DATABASE Company;
USE Company;
CREATE TABLE Employee (
Id INT PRIMARY KEY,
Name VARCHAR(45) NOT NULL,
Department VARCHAR(45) NOT NULL,
Salary FLOAT NOT NULL,
Gender VARCHAR(45) NOT NULL,
Age INT NOT NULL,
City VARCHAR(45) NOT NULL
);
INSERT INTO Employee VALUES (1001, '张伟', 'IT', 35000, '男', 25, '北京');
INSERT INTO Employee VALUES (1002, '李娜', 'HR', 45000, '女', 27, '上海');
INSERT INTO Employee VALUES (1003, '王强', 'Finance', 50000, '男', 28, '广州');
INSERT INTO Employee VALUES (1004, '赵敏', 'Finance', 50000, '女', 28, '深圳');
INSERT INTO Employee VALUES (1005, '刘洋', 'HR', 75000, '女', 26, '杭州');
INSERT INTO Employee VALUES (1006, '陈刚', 'IT', 35000, '男', 25, '南京');
INSERT INTO Employee VALUES (1007, '周杰', 'HR', 45000, '男', 27, '武汉');
INSERT INTO Employee VALUES (1008, '孙丽', 'IT', 50000, '女', 28, '成都');
INSERT INTO Employee VALUES (1009, '何伟', 'IT', 50000, '男', 28, '西安');
INSERT INTO Employee VALUES (1010, '马婷', 'HR', 75000, '女', 26, '重庆');复制
示例:使用 SUM 函数计算总薪资
示例 1:计算所有员工的总薪资
我们可以使用 SUM 函数来计算所有员工的总薪资,如下所示:
SELECT SUM(Salary) AS TotalSalary FROM Employee;
复制

执行上述查询后,将返回所有员工的总薪资。
示例 2:按部门计算总薪资
如果我们想要计算每个部门的总薪资,可以使用 GROUP BY 子句:
SELECT Department, SUM(Salary) AS TotalSalary
FROM Employee
GROUP BY Department;复制

执行此查询后,将返回每个部门的总薪资。
示例 3:使用 WHERE 子句计算男性员工的总薪资
我们还可以通过 WHERE 子句来过滤数据,例如计算所有男性员工的总薪资:
SELECT SUM(Salary) AS TotalSalary
FROM Employee
WHERE Gender = '男';复制

执行此查询后,将返回所有男性员工的总薪资。
示例 4:使用字符串列的 SUM 函数
如果我们尝试将字符串列传递给 SUM 函数,将会得到 0 作为结果。例如:
SELECT SUM(Name) AS Total FROM Employee;
复制

执行此查询后,将返回 0,因为 Name 列包含字符串值。
注意事项
- SUM函数只能用于数值类型的列
- 如果没有匹配的行,返回NULL
- 可以配合WHERE、GROUP BY等子句使用
- 对于包含NULL值的列,SUM函数会自动忽略NULL
总结
在本文中,我们详细介绍了 MySQL 的 SUM 函数及其用法。通过多个示例,我们展示了如何计算总薪资、按部门分组计算薪资以及使用 WHERE 子句进行条件过滤。希望这些示例能帮助您更好地理解和使用 MySQL SUM 函数。欢迎您提供反馈或提出问题!
如果你正在从事上位机、自动化、机器视觉、物联网(IOT)项目或数字化转型方面的工作,欢迎加入我的微信圈子!在这里,我们不仅可以轻松畅聊最新技术动态和行业趋势,还能够在技术问题上互相帮助和支持。我会尽量利用我的知识和经验来帮助你解决问题,当然也期待从大家的专业见解中学习和成长。无论你是新手还是老鸟,期待与志同道合的朋友交流心得,一起进步!
文章转载自技术老小子,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
1754次阅读
2025-04-25 18:53:11
2025 DBA 薪资观察:做 DBA 还香吗?
墨天轮编辑部
844次阅读
2025-04-24 15:53:21
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
648次阅读
2025-04-25 15:30:58
墨天轮个人数说知识点合集
JiekeXu
467次阅读
2025-04-01 15:56:03
MySQL数据库当前和历史事务分析
听见风的声音
456次阅读
2025-04-01 08:47:17
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
399次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
372次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
345次阅读
2025-04-15 14:48:05
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
319次阅读
2025-04-07 12:14:29
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
215次阅读
2025-04-15 15:27:53