记一次NULL与空字符串导致的分组后产生重复数据

news2024/11/15 11:05:57

目录

  • 一,场景说明
  • 二,实现功能
  • 三,修改原实现方法
  • 四,说明

一,场景说明

想实现这样一个功能,统计人员信息中不同性别的人的总工资。
实现方式:将数据group by 分组后累加。

二,实现功能

现要统计人员信息,sex为0代表女生,sex为1代表男生,为空则是未统计状态。
统计sql:

select sum(salary) as sum_salary,gender from tab_person group by gender

统计完以后应该只有三种情况,可实际情况却是如下四种:

sum_salarygender
22210
900
1569200
91871

挺奇怪的,最后去库里看了一下,发现gender除了1与0外,为空时有两种情况:Null与空字符串。怀疑group by的时候,把Null和空字符串,当成了两种不同的数据来处理。

在这里插入图片描述

三,修改原实现方法

select sum(salary) as sum_salary,IFNULL(gender,'') AS gender
from tab_person group by IFNULL(gender,'')

统计结果如下:

sum_salarygender
31210
1569200
91871

使用IFNULL函数,当字段值为NULL时,转为空字符串来参与分组。

四,说明

MySQL中Null和空字符串是如何存储的?

    1. Null:在MySQL中,NULL不是一个字符串,而是一种特殊的值,用于表示缺失或未知的值。NULL值在物理上不占用空间,因为它不存储任何数据。
  • 2.空字符串:空字符串是一个长度为0的字符串,它实际上是一个空字符串,在MySQL中它被视为长度为0的字符串。空字符串占用一个字节的存储空间(用于存储长度信息)。

具体的存储方式取决于字段的定义方式。如果字段定义为NOT NULL空字符串和NULL会被视为相同的值,存储方式也是相同的。如果字段可以存储NULL值,那么NULL和空字符串会被存储为不同的值
因此,我们在设计表时,字段最好是非空的,如果业务上可为空,那可以给其一个默认值,这样无论是建索引,还是分组,排序等,都会方便一些,不用额外考虑NULL值和空字符串。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2078268.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

叉车(工业车辆)安全管理系统,云端监管人车信息运营情况方案

近年来,国家和各地政府相继出台了多项政策法规,从政策层面推行叉车智慧监管,加大叉车安全监管力度。同时鼓励各地结合实际,积极探索智慧叉车建设,实现作业人员资格认证、车辆状态认证、安全操作提醒、行驶轨迹监控等&a…

探秘Facebook的人工智能战略:如何用智能技术重塑社交网络

人工智能(AI)正以前所未有的速度渗透到各个领域,社交网络也不例外。作为全球最大的社交平台之一,Facebook(现Meta)正利用人工智能技术重塑其网络环境,提升用户体验。本文将深入探讨Facebook的人…

对SpringBoot项目Jar包进行加密防止反编译

最近项目要求部署到其他公司的服务器上,但是又不想将源码泄露出去,要求对正式环境的启动包进行安全性处理,防止客户直接通过反编译工具将代码反编译出来,本文介绍了如何对SpringBoot项目Jar包进行加密防止反编译,需要的朋友可以参考下 场景: 最近项目要求部署到其他公司的服…

华为HCIP-datacom 真题 (2024年下半年最新题库)

备考HCIP-datacom的小伙伴注意啦 2024年下半年8月份最新题库带解析,有需要的小伙伴移动至文章末 1.BGP 邻居建立过程的状态存在以下几种:那么建立一个成功的连接所经历的状态机顺序是 A、3-1-2-5-4 B、1-3-5-2-4 C、3-5-1-2-4 D、3-1-5-2-4 答案:D 解析…

界面控件DevExpress VCL v24.2路线图预览——增强云集成、简化应用程序皮肤等

DevExpress VCL Controls是Devexpress公司旗下老牌的用户界面套包,所包含的控件有:数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一…

el-pagination 下拉条目数最后一个样式改成全部

2024.08.27今天我学习了如何把el-pagination的下拉条目数修改,效果如下: 我们需要把最后一条选择换成全部展示,其实传给后端的还是总的数量,只是换了一个content, 通过f12查看元素可以拿到.el-select-dropdown__item …

华为鸿蒙NEXT大揭秘:微信版功能曝光,简洁界面回归

在科技界,每一次操作系统的更新迭代都是一场期待与猜测的盛宴。华为的鸿蒙系统自问世以来,就以其独特的设计理念和强大的功能吸引了全球的目光。而今,随着微信版鸿蒙NEXT的曝光,我们似乎又将迎来一次科技的飞跃。但这一次&#xf…

【多系统萎缩患者必看!】营养补给站,守护健康每一刻✨

Hey小伙伴们~ 今天我们来聊聊一个需要特别关爱的话题——多系统萎缩(MSA)患者的营养补充秘籍!🌟 MSA是一种复杂的神经系统疾病,它影响我们的多个身体系统,让每一天的生活都充满了挑战。但别担心&#xff0c…

【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密

前言 🍊缘由 SQLite里藏秘密,微信聊天有痕迹 🐣闪亮主角 大家好,我是JavaDog程序狗 今天跟大家分享一个开源小工具PyWxDump,是一个用于获取 wx 账户信息(昵称/账户/电话/电子邮件/数据库密钥&#xff0…

利用autoDecoder工具在数据包加密+签名验证站点流畅测试

站点是个靶场 https://github.com/0ctDay/encrypt-decrypt-vuls 演示地址http://39.98.108.20:8085/ 不是仅登录位置暴力破解的那种场景,使用autoDecoder(https://github.com/f0ng/autoDecoder)的好处就是每个请求自动加解密,测…

35岁失业后,这3个AI副业,也能养活自己

不少粉丝曾问我,有没有用AI赚钱的方法。 *眼看就快到35岁中年危机,想提前安排个退路。* 对于大家的焦虑,我很能理解,花钱容易挣钱难,尤其是在当下,大环境不是那么好,很多人进入佛系状态&#…

【STM32】位带操作

一、位带操作 1.意义 回想以前写51代码 ​ P0 0x10; //将P0端口设置为0x10 P1_01; //将P1端口0号引脚设置为高电平 a P2_2; //获取P2端口2号引脚的电平 根据上述的方法,我们可以发现快速定位修改某个引脚的电平还有获取引脚的状态 2.原因 GPIO_SetBits、GPI…

2025深圳国际微波射频及天线技术应用展览会

2025深圳国际微波射频及天线技术应用展览会 2025 Shenzhen International Microwave RF and Antenna Technology Application Exhibition 时间:2025年04月9-11日 地点:深圳会展中心(福田) 详询主办方陆先生 I38(前三位&#…

CRMEB 多店版供应商订单管理

订单列表 一、功能介绍 查看所有供应商订单数据,详情,可以提醒发货 根据供应商筛选,可以查看不同类订单 二、操作流程 供应商 > 订单管理 > 订单列表 三、功能说明 售后列表 一、功能介绍 查看所有供应商售后订单数据&a…

一个案例讲透如何做好竞品分析!

随着国内互联网市场进入下半场,各个领域的相关产品层出不穷,即使是新鲜事物,一旦出现,也会迅速造成行业内部拥挤。行业发展如此之快,闭门造车绝对不是产品迭代更新应有的设计方式。敞开大门,出去看看别人家…

基于 Llama factory 微调 Llama3.1-70B-Chinese-Chat

​ 本文旨在探讨基于Llama factory使用LoRA(Low-Rank Adaptation)技术对Llama3.1-70B-Chinese-Chat模型进行微调的过程,重点介绍在单机多卡和多机多卡两种分布式训练环境下的实现方法。 1.环境准备 1.1 平台环境 微调Llama3.1-70B模型&…

Anthropic 公开 Claude AI 模型的系统提示词

硅纪元快讯栏目,每日追踪AI领域的最新动态,快速汇总最新科技新闻,助您时刻紧跟行业趋势。简明扼要的呈现资讯概要,让您快速了解前沿资讯。 1分钟速览新闻 特斯拉“Cortex”超级计算机亮相,预计10月全面运行 Anthropic…

Clickhouse集群化(一)k8s集群搭建

环境准备: vm 17 pro 有些功能必须pro版本才会提供(https://download.csdn.net/download/weixin_40663313/89677277?spm1001.2014.3001.5501)夸克下载链接 centos 7.9 docker:1.26 k8s:1.21.14 1. 创建虚拟机 …

图书馆自习预约选座小程序

一、项目概述 Hi,大家好,今天分享的项目是《图书馆自习预约选座小程序》。 图书馆是日常同学学习的好去处,但同学们日益高涨的学习热情和图书馆座位有限的矛盾也日益凸显。经常出现座位不够的情况,甚至部分同学会进行占座&#…

腾讯浙大提出定制化视频生成框架CustomCrafter,只需通过少量图像就可以完成高质量视频生成!

腾讯联合浙大提出了一种定制化视频生成框架-CustomCrafter,它能够基于文本提示和参考图像生成自定义视频,同时保留运动生成和概念组合的能力。通过设计一系列灵活的模块,使得模型实现了无需额外视频,通过少量图像学习,…