Mysql——SUM()函数

这篇具有很好参考价值的文章主要介绍了Mysql——SUM()函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、前期准备工作

新建表如下:

插入的数据如下:

二、SUM()函数的用法 

1.求和,返回指定列的总和

SUM 函数可以对单个列求和,也可以对多个列运算后求和,计算中忽略 NULL 值

SUM函数与分组 GROUP  BY 使用,可以分组求和

SUM对多个列运算后求和,如果运算的列中有个字段为 NULL, 运算结果也为 NULL

在没有符合条件的数据时使用 SUM 函数,则 SUM 函数返回 NULL,而不是 0

可以通过结合使用 IFNULL 或 COALESCE 函数来解决结果为 NULL 的情况

2.SUM()可以求总记录数

1.SUM(1)相当于COUNT(1)

2.求符合条件的记录数

3.使用如果表达式IF(expr, v1, v2), expr 成立,返回结果 v1;否则,返回结果 v2

3.使用条件表达式


一、前期准备工作

本文基于自己的理解,总结了 SUM() 函数的用法。为了更加直观,我先新建一个 student_table 表并往表里面插入一些数据,方便后面的 sql 举例。如有错误,还请指出。

新建表如下:

CREATE TABLE `student_table` (
  `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '姓名',
  `gender` int DEFAULT '0' COMMENT '性别 0:保密 1:男 2:女',
  `id_card` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '身份证号',
  `national` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '民族',
  `phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '联系电话',
  `score` decimal(10,2) DEFAULT NULL COMMENT '期末总分数',
  `describe` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '描述',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='学生表';

插入的数据如下:

insert into student_table values(1,'小明','1','111222333444555666','汉族','11122233344','8','zxcvbnm');  
insert into student_table values(2,'红红','2','999999999444444444','汉族','99999444444','7','sfsdvsvs');  
insert into student_table values(3,'张三','0','666666666888888888','苗族','66666688888','8','gsfwwsfg');  
insert into student_table values(4,'李四','0','111111111444444444','苗族','11111144444','6','erefsss');  
insert into student_table values(5,'王五','0','333333333777777777','苗族','33333377777','4','lkjgdgsgssftg');  
insert into student_table values(6,'小绿',NULL,NULL,NULL,NULL,NULL,NULL);
insert into student_table values(7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);

mysql sum函数,mysql,mysql,数据库,sql,java


二、SUM()函数的用法 

1.求和,返回指定列的总和

1.

SUM 函数可以对单个列求和,也可以对多个列运算后求和,计算中忽略 NULL 值

mysql sum函数,mysql,mysql,数据库,sql,javamysql sum函数,mysql,mysql,数据库,sql,java

SUM函数与分组 GROUP  BY 使用,可以分组求和

mysql sum函数,mysql,mysql,数据库,sql,javamysql sum函数,mysql,mysql,数据库,sql,java

SUM对多个列运算后求和,如果运算的列中有个字段为 NULL, 运算结果也为 NULL

( id 不为 NULL,但是 score 为 NULL ,运算的结果也为 NULL )

mysql sum函数,mysql,mysql,数据库,sql,java

2.

在没有符合条件的数据时使用 SUM()函数,或者当某一列全是NULL时,则 SUM()函数返回 NULL,而不是 0

mysql sum函数,mysql,mysql,数据库,sql,javamysql sum函数,mysql,mysql,数据库,sql,java

可以通过结合使用 IFNULL 或 COALESCE 函数来解决结果为 NULL 的情况

mysql sum函数,mysql,mysql,数据库,sql,javamysql sum函数,mysql,mysql,数据库,sql,java

这两个函数的区别:

  • IFNULL 函数接受两个参数,如果第一个参数不是 null 会直接返回,如果第一个参数是 null ,则返回第二个参数
  • COALESCE 函数可以接受两个或多个参数,并返回第一个非 null 的参数,如果所有参数都为 null,则会返回 null
  • 参考:Mysql使用sum()函数返回null的问题详解-云海天教程

2.SUM()可以求总记录数

1.SUM(1)相当于COUNT(1)

mysql sum函数,mysql,mysql,数据库,sql,javamysql sum函数,mysql,mysql,数据库,sql,java

2.求符合条件的记录数

mysql sum函数,mysql,mysql,数据库,sql,java

3.使用如果表达式IF(expr, v1, v2), expr 成立,返回结果 v1;否则,返回结果 v2

true 等同于 1

mysql sum函数,mysql,mysql,数据库,sql,javamysql sum函数,mysql,mysql,数据库,sql,java

下面的语句是分数大于 5 的返回 2 

mysql sum函数,mysql,mysql,数据库,sql,javamysql sum函数,mysql,mysql,数据库,sql,java

3.使用条件表达式

CASE
WHEN 条件1 THEN 选项1
WHEN 条件2 THEN 选项2
……
ELSE 默认值
END

mysql sum函数,mysql,mysql,数据库,sql,javamysql sum函数,mysql,mysql,数据库,sql,java文章来源地址https://www.toymoban.com/news/detail-526074.html

到了这里,关于Mysql——SUM()函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Oracle sql sum函数返回null,默认值0

    在Oracle SQL中,当你使用 SUM 函数对一组值进行求和时,如果这组值中包含 NULL ,那么 SUM 函数将忽略这些 NULL 值,并返回非 NULL 值的总和。 如果你希望在 SUM 函数返回 NULL 时有一个默认值,你可以使用 COALESCE 或 NVL 函数。 使用 COALESCE 函数: 使用 NVL 函数: 在这两个例子中,

    2024年01月16日
    浏览(39)
  • 【MySQL数据库】MySQL 高级SQL 语句一

    ) % :百分号表示零个、一个或多个字符 _ :下划线表示单个字符 ‘A_Z’:所有以 ‘A’ 起头,另一个任何值的字符,且以 ‘Z’ 为结尾的字符串。例如,‘ABZ’ 和 ‘A2Z’ 都符合这一个模式,而 ‘AKKZ’ 并不符合 (因为在 A 和 Z 之间有两个字符,而不是一个字符)。 ‘ABC%’

    2024年02月09日
    浏览(243)
  • 数据库应用:MySQL数据库SQL高级语句与操作

    目录 一、理论 1.克隆表与清空表 2.SQL高级语句 3.SQL函数 4.SQL高级操作 5.MySQL中6种常见的约束 二、实验  1.克隆表与清空表 2.SQL高级语句 3.SQL函数 4.SQL高级操作 5.主键表和外键表  三、总结 克隆表:将数据表的数据记录生成到新的表中。 (1)克隆表 ① 先创建再导入 ② 创建

    2024年02月13日
    浏览(81)
  • 【MySQL 数据库】7、SQL 优化

    ① 批量插入数据 ② 手动控制事务 ③ 主键顺序插入,性能要高于乱序插入 主键乱序插入 : 8 1 9 21 88 2 4 15 89 5 7 3 主键顺序插入 : 1 2 3 4 5 7 8 9 15 21 88 89 【☆】 】 ① 如果需要一次性插入大批量数据(百万级别),使用 insert 语句插入性能 很低 ② 可使用 MySQL 数据库提供的 loa

    2024年02月08日
    浏览(60)
  • MySQL基础篇——MySQL数据库客户端连接,数据模型,SQL知识

    作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.客户端连接MySQL 二. 数据模型 1.关系型数据库(RDBMS) 2.数据模型 三.SQL 1.SQL通用语法 2.SQL分类 3.数据库操作 1). 查

    2024年02月06日
    浏览(77)
  • MySQL数据库:内置函数

    规定:日期:年月日       时间:时分秒 函数名称 作用描述 current_date() 当前日期 current_time() 当前时间 current_timestamp() 当前时间戳 date(datetime) 返回datetime参数的日期部分 date_add(date,interval d_value_type) 在date中添加时间或日期。interval后面可以是year、day、minute、second date_sub(da

    2024年02月11日
    浏览(47)
  • 【数据库】MySQL 高级(进阶) SQL 语句

    location表格创建 store_info表格创建 显示表格中一个或数个字段的所有数据记录 不显示重复的数据记录 按照条件进行查询 在已知的字段数据取值范围内取值 另外还有not in命令,用法一致,表示显示不在指定范围内的字段的值。 在两个字段数据值之间取值,包含两边字段的数据

    2024年02月09日
    浏览(137)
  • MySQL数据库基础(九):SQL约束

    文章目录 SQL约束 一、主键约束 二、非空约束 三、唯一约束 四、默认值约束 五、外键约束(了解) 六、总结 PRIMARY KEY 约束唯一标识数据库表中的每条记录。 主键必须包含唯一的值。 主键列不能包含 NULL 值。 每个表都应该有一个主键,并且每个表只能有一个主键。 遵循原

    2024年02月19日
    浏览(60)
  • MySQL之SQL与数据库简介

    SQL首先是一门高级语言,同其他的C/C++,Java等语言类似,不同的是他是一种结构化查询语言,用户访问和处理数据库的语言,那类似于C语言,SQL也有自己的标准,目前市面上的数据库系统都支持SQL-92标准 SQL这门语言是具有统一性的,但是不同的数据库支持的SQL有略微差别,

    2024年01月23日
    浏览(51)
  • MySQL数据库入门到精通1--基础篇(MySQL概述,SQL)

    目前主流的关系型数据库管理系统: Oracle:大型的收费数据库,Oracle公司产品,价格昂贵。 MySQL:开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle又收购了Sun公司。 目前Oracle推出了收费版本的MySQL,也提供了免费的社区版本。 SQL Server:Microsoft 公司推出的收费的中

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包