在数据分析的世界中,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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




