首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql sum函数对两字段运算时有null时的情况

背景 在针对一些数据进行统计汇总的时候,有时会对表的某些字段进行逻辑运算,如加减乘除,如果要求和的话还可能会用到sum函数,如果两者结合起来应该怎么处理,如果参与运算的字段中出现null值的时候会出现一些什么情况...如上表所示,用户信息表中有账户总金额和冻结金额字段,我们现在想要计算可用金额,根据业务场景可用金额 = total_amount - freeze_amount,如果此时要汇总计算表中所有数据的可用金额总和...根据表数据,我们知道统计后正确的结果应该是 (2000 - 50) + (1500 - 100) + (500 - 50) + 1000 = 4800 但如果我们这么写,那么得到的结果是错误的。...- 50) + (1500 - 100) + (500 - 50) + (1000 - null) = 3800  因为1000 - null的结果不是1000而是null,因为null与任何值比较和运算的结果都是...null,所以我们应该针对null特殊处理。

96110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql数据库对用户权限限制

    mysql限定用户对数据库的权限 默认的MySQL安装之后根用户是没有密码的 先用根用户进入: # mysql -u root 执行: mysql> GRANT ALL...PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY “123456”; 用的是123456做为root用户的密码,我这里是做个例子,要是用123456密码...那还不象不设置密码了:) 建立一个用户对特定的数据库有所有权限 mysql>CREATE DATABASE test; 建立test库 mysql>GRANT...ALL PRIVILEGES ON test.* TO username@localhost IDENTIFIED BY “654321”; 这样就建立了一个username的用户,它对数据库test...以后就用username来对test数据库进行管理,而无需要再用root用户了,而该用户的权限也只被限定在test数据

    4K20

    mysql Decimal 运算

    MySQL DECIMAL数据类型用于在数据存储精确的数值。我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统的货币数据。...MySQL要求D小于或等于P。 与INT数据类型一样,DECIMAL类型也具有UNSIGNED和ZEROFILL属性。...WHERE t.id=1;-- Out of range value for column 'score' at row 1 -- 除了减法,其他测试正常 从上边总结可以看出 其中要用sql 直接运算...除了减法 其他方法可以正常执行; 嗯 那么碰到减法了,如果当前存储数据比要减少的数据小的话,那最好另外的地方直接获取结果,最终在需要的地方更新就好; 追加, 在java 直接给mysql...传decimal 类型数据mysql 计算仍然会出现误差, 最终方案是将其在更新之前 获取结果,最终直接给mysql 传递需要更改的值,存储就好!!

    2.2K30

    MySQL核心知识》第3章:MySQL运算

    ❞ 今天是《MySQL核心知识》专栏的第3章,今天跟大家一起聊聊MySQL运算符。好了,开始今天的正题。...时,不能判断大小,返回值为NULL REGEXP 运算符 在SQLSERVER里是没有正则函数或者运算符的,MYSQL在这方面的确比较完善 用来匹配字符串,语法格式为:expr REGEXP 匹配条件...‘0 XOR 0’运算符两边的操作数都为非零值,或者都是零值,因此返回0; '1 XOR 0'两边的操作数,一个为0值,另一个为非0值,返回结果为1; '1 XOR NULL'中有一个操作数为NULL...注意: a XOR b的计算等同于(a AND (NOT b))或者(NOT a AND ( b)) 位运算符 由于比较少用到,这里只简单介绍 位运算符是用来对二进制字节的位进行测试、移位或者测试处理...例如20这个数字 SELECT BIN(「20」) 二进制表示为:10100 特别提示 某一些MYSQL的特殊字符需要用转义字符才能插入数据库,否则产生意料之外的结果。

    67920

    MySQL 运算

    本章节我们主要介绍 MySQL运算符及运算符的优先级。...MySQL 主要有以下几种运算符: 算术运算符 比较运算符 逻辑运算符 位运算符 ---- 算术运算MySQL 支持的算术运算符包括: 运算符 作用 + 加法 - 减法 * 乘法 / 或 DIV 除法...% 或 MOD 取余 在除法运算和模运算,如果除数为0,将是非法除数,返回结果为NULL。...通过这些比较运算符,可以判断表的哪些记录是符合条件的。比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 NULL。 符号 描述 备注 = 等于 , !...= 不等于 > 大于 < 小于 <= 小于等于 >= 大于等于 BETWEEN 在两值之间 >=min&&<=max NOT BETWEEN 不在两值之间 IN 在集合 NOT IN 不在集合

    1.4K00

    数据关系代数的关系运算

    除法运算的定义: ? 这个概念的描述的非常抽象,刚开始学习的同学完全不知所云。这里通过一个实例来说明除法运算的求解过程: 设有关系R、S 如图所示,求R÷S 的结果: ?...求解步骤过程: 第一步:找出关系R和关系S相同的属性,即Y属性。在关系S对Y投影(即将Y列取出);所得结果如下: ?...第二步:被除关系R与S不相同的属性列是X,关系R在属性(X)上取消重复值的投影为{X1,X2}; 第三步:求关系RX属性对应的像集Y 根据关系R的记录,可以得到与X1值有关的记录,如图3...第四步:判断包含关系 R÷S其实就是判断关系RX各个值的像集Y是否包含关系S属性Y的所有值。...对比即可发现: X1的像集只有Y1,不能包含关系S属性Y的所有值,所以排除掉X1; 而X2的像集包含了关系S属性Y的所有值,所以R÷S的最终结果就是X2 , ?

    3.7K20

    MySQL数据类型、运算符以及数据库范式

    数值类型 MySQL数据类型定义了数据的大小范围,因此使用时选择合适的类型,会降低表占用的磁盘空间,间接减少了磁盘I/O的次数,提高表的访问效率,而且索引的效率也和数据的类型息息相关。...这两个类型,都是限制该字段只能取固定的值,但是枚举字段只能取一个唯一的值,而集合字段可以取任意的值 创建表的时候可以使用: sex enum('man','woman') default 'man' 二、MySQL...运算符 1....算数运算符 此外作为通配符:%可以匹配任意一个或多个字符,_匹配任意单个字符 2. 逻辑运算符 3....由于姓名、年龄只和学号有关,和课程名称无关,所以在存储的多行很有可能学号、姓名、年龄都相同,只有课程名称不同,这就造成了数据冗余。

    19210

    Mysql-6-数据类型和运算

    1.mysql数据类型 (1)数值数据类型:包括整数类型tinyint、smallint、mediumint、int、bigint,浮点小数类型float和double,定点小数类型decimal。...(5)enum和set enum只能取单值,它的数据列表时一个枚举类型。set可以取多个值。都是以字符串形式出现的,但在mysql内部,实际是以数值索引的形式存储它们。...8.常见运算运算符 作用 + 加法运算 - 减法运算 * 乘法运算 / 除法运算,返回商 % 求余运算,返回余数 mysql> insert into tmp14 value(99); mysql...not in 判断一个值不是in列表的任意一值 like 通配符匹配 regexp 正则表达式匹配 例子: mysql> select 1=2,3=3,4>5,9>2; +-----+-----+...not (2-2) | +-------+-----------+ | 0 | 1 | +-------+-----------+ 11.位运算符:用来对二进制字节的位进行测试

    1K100

    MySQL基础之数据类型和运算

    早些年学习MySQL基础之数据类型和运算符的笔记,以便后续回顾学习: 1. 数据类型为int(11),注意到后面的数字11,这表示的是该数据类型指定的显示宽度,指定能够显示的数值数字的个数。...其他数据类型也可以在定义表结构的时候指定所需要的显示宽度,如果不指定,则系统为每一种类型指定默认的宽度。 2. MySQL使用浮点数和定点数表示小数。...MySQL,定点数以字符串的形式存储,在对进度要求比较高的时候(比如货币和科学计算)使用decimal的类型比较好,另外两个浮点数进行减法和比较运算时也容易出现问题,所以在使用浮点型时需要注意,尽避免浮点数比较...可以使用字符串类型或者数字类型的数据插入DATE类型数据,只要符合DATE的日期格式即可。 9. MySQL允许“不严格”的语法:任何标点符号都可以用作日期部分之间的间隔符。...字符串类型用来存储字符串数据,除了可以存储字符串数据外,还可以存储其他数据,比如图片、声音的二进制数据。 13. MySQL至此两类字符型数据:文本字符串和二进制字符串。 14.

    37220

    mysql】算术运算

    算术运算符 算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加(+)、减(-)、乘(*)、除(/)和取模(%)运算。 [请添加图片描述] 1....] 在SQL,+没有连接的作用,就表示加法运算。...; 加法和减法的优先级相同,进行先加后减操作与进行先减后加操作的结果是一样的; 在Java,+的左右两边如果有字符串,那么表示字符串的拼接。...但是在MySQL+只表示数值相加。如果遇到非数值类型,先尝试转成数值,如果转失败,就按0计算。(补充:MySQL字符串拼接要使用字符串函数CONCAT()实现) 2....在数学运算,0不能用作除数,在MySQL,一个数除以0为NULL。 3.

    1.2K30

    mysql】比较运算

    在使用等号运算符时,遵循如下规则: 如果等号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的是每个字符串字符的ANSI编码是否相等。...如果等号两边的值都是整数,则MySQL会按照整数来比较两个值的大小。 如果等号两边的值一个是整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较。...对比:SQL赋值符号使用 := mysql> SELECT 1 = 1, 1 = '1', 1 = 0, 'a' = 'a', (5 + 3) = (2 + 6), '' = NULL , NULL...IN运算符 IN运算符用于判断给定的值是否是IN列表的一个值,如果是则返回1,否则返回0。如果给定的值为NULL,或者IN列表存在NULL,则结果为NULL。...NOT IN运算符 NOT IN运算符用于判断给定的值是否不是IN列表的一个值,如果不是IN列表的一个值,则返回1,否则返回0。

    2.5K30

    MySQL常见运算

    运算符 作用 + 加法运算 – 减法运算 * 乘法运算 /或div 除法运算,返回商 %或mod 求余运算,返回余数 逻辑运算符 逻辑运算符的求值所得结果均为1(TRUE)、0(FALSE),这类运算符有逻辑非...MySQL中比较运算符如表所示: 运算符 作用 == 等于 安全的等于 1.可作为普通运算符的= 2.也可以用于判断是否是NULL (!...null LEAST 在有两个或多个参数时,返回最小值 GREATEST 在有两个或多个参数时,返回最大值 BENTWEEN AND 是否在两个值中间 ISNULL 同IS NULL IN 是否在集合...NOT IN 是否不再IN列表 LIKE 模糊匹配(支持通配符) REGEXP 或 RLIKE 正则匹配 位运算符 位运算符是用来对二进制字节的位进行测试、位移或者测试处理,MySQL中提供的位运算符有按位或...本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息: 原文出处:Yiiven https://www.yiiven.cn/mysql-operators.html

    62420

    MySQL运算

    运算是将给定的操作数转化为二进制后,对各个操作数每一位都进行指定的逻辑运算,得到的二进制结果转换为十进制数后就是位运算的结果。MySQL5.0支持6种位运算符。 ?...“位与”对多个操作数的二进制位逻辑与操作,例如2&3,因为2的二进制数是10,3是11,所有10&11的结果是10,十进制数字还是2。...2&3&4,4的二进制是100,和10(2的二进制)与操作100&010后。 ? “位或”对多个操作数的二进制位逻辑或操作。 “位异或”对操作数的二进制位异或操作。...“位取反”对操作数的二进制位NOT操作,这里的操作数只能是一位,对1位取反。 ?...在MySQL,常量数字默认会以8个字节来表示,8个字节就是64位,常量1的二进制表示为63个“0”加“1”,位取反后就是63个“1”加一个“0”,转换为二进制后就是18446744073709551614

    1.7K20

    mysql运算符(一)

    但是在MySQL+只表示数值相加。如果遇到非数值类型,先尝试转成数值,如果转失败,就按0计算。...(补充:MySQL字符串拼接要使用字符串函数CONCAT(实现) #运算符 dual 创建一个虚拟的表 SELECT 100, 100 * 1.0, 100 / 1.0, 100 / 2, 100...在数学运算,0不能用作除数,在MySQL,一个数除以0为NULL。 1.3、求模(求余)运算符 将t22表的字段i对3和5进行求模(求余)运算。...在使用等号运算符时,遵循如下规则: 如果等号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的 是每个字符串字符的ANSI编码是否相等。...=2 FROM DUAL; #空和任何数据做对比都为空 SELECT '4'NULL,''!=NULL,NULL!

    15810
    领券