一次现场mysql重复记录数据的排查处理实战记录
作者:AntCredit 时间:2024-01-17 11:42:28
目录
前言
分析
数据总计
重复次数占比
where 和 having 的区别
总结
前言
我当时正好出差在客户现场部署调试软件,有一天客户突然找到我这里,说他们现场生产的数据出现了异常的情况,最直接的表现就是 同一个标签,出现在了多个物料上,需要我配合,看怎么排查问题
分析
客户当时直接一摞重复标签的盒子码在我面前,我慌得一匹,这怕不是捅娄子了
稍加思索,现在需要做的就是,在数据库中查询出重复的标签,即对一个标签进行统计,判断出计数> 1 的即可
emmm,语法错误,我记得还有个Having 来着,换上试试
好家伙,重复的标签有 1500 多条,再统计一下总共问题的记录数量,以及再分组看看标签重复次数的占比数据
对了,先把这些重复标签数据扔个客户去追溯产品(幸好 navicat 支持复制数据)
数据总计
以上一条查询记录的结果为临时表,在此基础上,用 sum() 求和
重复的记录有点多,这问题有一点点大了
重复次数占比
对之前的查询表换一个查询方式,即对 count 数据再次分组
从结果来看,绝大部分问题数据重复了2次
where 和 having 的区别
Where是一个 约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且where后面 不能使用聚合函数
Having是一个 过滤声明,所谓过滤是 在查询数据库的结果返回之后进行过滤,即在结果返回之后起作用,并且having后面可以使用聚合函数。
所谓 聚合函数,是对一组值进行计算并且返回单一值的函数:sum---求和,count---计数,max---最大值,avg---平均值等。
总结
在 mysql 的查询操作中,我们日常用到的,一般都是多表联查,将查询的结果当成中间表进行多次查询,对查询的结果做分组,做统计汇总等操作
如果查询操作中使用了函数计算或者是分组,典型的特征就是将原始表的多条记录合并成一条,就需要 having 对这些操作的结果进行过滤,除此之外,使用 where 对表记录进行条件过滤即可
来源:https://juejin.cn/post/7011374414394556452
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
JS数组方法汇总
Python3爬虫RedisDump的安装步骤
python使用requests.session模拟登录
![](https://img.aspxhome.com/file/2023/1/95301_0s.png)
python 字符串转列表 list 出现\\ufeff的解决方法
Python OpenCV特征检测之特征匹配方式详解
![](https://img.aspxhome.com/file/2023/0/77580_0s.jpg)
pytorch教程之网络的构建流程笔记
用javascript替换URL中的参数值示例代码
一个入门级python爬虫教程详解
![](https://img.aspxhome.com/file/2023/9/77569_0s.png)
python基础学习之组织文件
![](https://img.aspxhome.com/file/2023/0/127910_0s.png)
Python tkinter布局与按钮间距设置方式
gulp-htmlmin压缩html的gulp插件实例代码
python使用__slots__让你的代码更加节省内存
![](https://img.aspxhome.com/file/2023/5/77805_0s.jpg)
AlternatingItemTemplate类似于 ItemTemplate 元素
Python趣味挑战之用pygame实现飞机塔防游戏
![](https://img.aspxhome.com/file/2023/7/95867_0s.gif)
微信小程序新手教程之启动页的重要性
有趣的python小程序分享
![](https://img.aspxhome.com/file/2023/7/98787_0s.png)
SQLserver删除某数据库中所有表实现思路
详解小白之KMP算法及python实现
![](https://img.aspxhome.com/file/2023/6/128776_0s.png)
在python中的socket模块使用代理实例
Python的SimpleHTTPServer模块用处及使用方法简介
![](https://img.aspxhome.com/file/2023/7/76767_0s.jpg)