目录

一、前期准备工作

新建表如下:

插入的数据如下:

二、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);


二、SUM()函数的用法

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

1.

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

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

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

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

2.

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

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

这两个函数的区别:

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

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

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

2.求符合条件的记录数

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

true 等同于 1

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

3.使用条件表达式

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

Mysql——SUM()函数相关推荐

  1. MySQL sum()函数

    转载自   MySQL sum()函数 MySQL SUM()函数介绍 SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下: SUM(DISTINCT expression) SUM ...

  2. mysql sum函数返回类型_MySQL的sum函数返回的门类

    MySQL的sum函数返回的类型 今天项目切换数据库时,出错 访问数据库的代码大概是这样: String sql = "select sum(number) as sumNumberOfOn ...

  3. MySQL SUM函数进行计算会出现0000000001或9999999999未知小数

    MySQL中当使用sum函数来计算 varchar.float类型的字段有可能会出现0000000001或9999999999未知小数. 咱们可以把对应数据结果转换类型为Decimal类型,进行精度保 ...

  4. MySQL SUM()函数按条件求和

    一般求和 select sum(money) from user group by id; 按条件求和 select sum(if(type=1,money,0)) from user group b ...

  5. Mysql与Sql server,Sum函数跟Count函数

    两者均是统计类函数,都不计算NULL字段!!! 单纯计算行数的话,count的效率比sum的效率高 MySQL SUM()函数介绍 SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下 ...

  6. mysql min函数 结果全为null_MySQL ----- 聚集函数(AVG,SUM,COUNT,MIN,MAX) (十一)

    为了汇总数据而不把实际的检索出来,MySQL 提供了专门的函数,聚集函数 好处:可以将检索数据进行分析和报表生成 一.聚集函数(aggregate function): 运行在行组上,计算和返回单个值 ...

  7. mysql union all sum_[数据库]SQL Server UNION ALL 结果 SUM函数造成精度丢失

    [数据库]SQL Server UNION ALL 结果 SUM函数造成精度丢失 0 2020-08-03 18:00:30 SQL Server 数据类型 使用场景: 在进行多维度汇总数据时,需要将 ...

  8. mysql sum计算效率很慢_MySQL基础之分组函数

    分组函数主要用于统计,又称为聚合函数.统计函数或组函数. 常见的分组函数有: SUM(expr) 求和AVG([DISTINCT] expr) 求平均值MAX(expr) 求最大值MIN(expr) ...

  9. mysql sum_MySQL中的SUM函数使用教程

    MySQL的SUM函数是用来找出记录中各种的字段的总和. 要了解SUM函数考虑EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; +- ...

最新文章

  1. ASP.NET MVC 中将FormCollection与实体间转换方法
  2. 《深入理解Nginx:模块开发与架构解析》一1.2 为什么选择Nginx
  3. Required request body is missing 错误
  4. matlab函数参数命令,matlab函数文件中的输出参数如何不在命令窗口显示
  5. 长方形与圆最近连线LISP_餐桌到底选方还是圆?可千万别买错了,今天我们好好聊聊...
  6. POJ-2349-Arctic Network
  7. You Only Watch Once:实时人体动作定位网络
  8. java web主流框架整合开发 光盘_开发者突击:Java Web主流框架整合开发(第2版)(附CD光盘1张)...
  9. unity 企鹅砸小猪 笔记1
  10. 基于SSM的租房管理系统
  11. matlab画区间柱状图,科学网—Matlab画柱状图 - 高淑敏的博文
  12. c和python 入门_C语言和Python,该从哪个入门编程?
  13. python制作卡通表情包_python——简单生成表情包
  14. python趋势图_python绘制趋势图的示例
  15. GUI使用2——总结NGUI、tookit2D、GUI比较
  16. github WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
  17. map组件如何展示marker的callout气泡
  18. 计算机磁盘怎么更改,如何对电脑中的磁盘盘符号进行修改?
  19. 视频教程-新版华为HCIA数通(路由与交换)课程-华为认证
  20. 使用国产KT148A语音芯片sop8封装,用户可以自己更换声音,低成本,高秒数

热门文章

  1. 企业如何炒热直播间氛围,快速引流线下
  2. 传奇之路——国际化的中国人
  3. 思科C9115AXI-H型号AP上线C9800失败处理记录
  4. 制度罚则--团建组织
  5. Nginx网页优化及防盗链__gw
  6. 抖音购物车功能的开通条件
  7. centos7安装随堂笔记
  8. mysql 多表联查_MySQL的多表联查
  9. 故事公园-—昆明莲花池
  10. Unity5.3官方VR教程重磅登场-系列1