暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL SUM函数详解与实例

技术老小子 2025-03-12
16

在数据分析的世界中,SUM函数是最常用且强大的聚合函数之一。本文将深入探讨MySQL中SUM函数的使用方法,帮助读者全面理解和灵活运用这一重要的数据处理工具。

什么是SUM函数?

SUM函数是MySQL中用于计算数值列总和的聚合函数。它可以快速求出指定列中所有数值的累加结果。

MySQL SUM 函数语法

SELECT SUM(columnFROM TableName;

复制

我们将使用以下的员工表(Employee)来理解 MySQL SUM 函数的用法。

创建和填充员工表

请使用以下 SQL 脚本创建并填充员工表,数据内容为中文:

CREATE DATABASE Company;
USE Company;

CREATE TABLE Employee (
    Id INT PRIMARY KEY,
    Name VARCHAR(45NOT NULL,
    Department VARCHAR(45NOT NULL,
    Salary FLOAT NOT NULL,
    Gender VARCHAR(45NOT NULL,
    Age INT NOT NULL,
    City VARCHAR(45NOT 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(NameAS Total FROM Employee;

复制

执行此查询后,将返回 0,因为 Name 列包含字符串值。

注意事项

  1. SUM函数只能用于数值类型的列
  2. 如果没有匹配的行,返回NULL
  3. 可以配合WHERE、GROUP BY等子句使用
  4. 对于包含NULL值的列,SUM函数会自动忽略NULL

总结

在本文中,我们详细介绍了 MySQL 的 SUM 函数及其用法。通过多个示例,我们展示了如何计算总薪资、按部门分组计算薪资以及使用 WHERE 子句进行条件过滤。希望这些示例能帮助您更好地理解和使用 MySQL SUM 函数。欢迎您提供反馈或提出问题!


如果你正在从事上位机、自动化、机器视觉、物联网(IOT)项目或数字化转型方面的工作,欢迎加入我的微信圈子!在这里,我们不仅可以轻松畅聊最新技术动态和行业趋势,还能够在技术问题上互相帮助和支持。我会尽量利用我的知识和经验来帮助你解决问题,当然也期待从大家的专业见解中学习和成长。无论你是新手还是老鸟,期待与志同道合的朋友交流心得,一起进步!

文章转载自技术老小子,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论