一次现场mysql重复记录数据的排查处理实战记录

作者:AntCredit 时间:2024-01-17 11:42:28 

目录
  • 前言

  • 分析

    • 数据总计

    • 重复次数占比

  • where 和 having 的区别

    • 总结

      前言

      我当时正好出差在客户现场部署调试软件,有一天客户突然找到我这里,说他们现场生产的数据出现了异常的情况,最直接的表现就是 同一个标签,出现在了多个物料上,需要我配合,看怎么排查问题

      分析

      客户当时直接一摞重复标签的盒子码在我面前,我慌得一匹,这怕不是捅娄子了

      稍加思索,现在需要做的就是,在数据库中查询出重复的标签,即对一个标签进行统计,判断出计数> 1 的即可

      一次现场mysql重复记录数据的排查处理实战记录

      emmm,语法错误,我记得还有个Having 来着,换上试试

      一次现场mysql重复记录数据的排查处理实战记录

      好家伙,重复的标签有 1500 多条,再统计一下总共问题的记录数量,以及再分组看看标签重复次数的占比数据

      对了,先把这些重复标签数据扔个客户去追溯产品(幸好 navicat 支持复制数据)

      数据总计

      以上一条查询记录的结果为临时表,在此基础上,用 sum() 求和

      一次现场mysql重复记录数据的排查处理实战记录

      重复的记录有点多,这问题有一点点大了

      重复次数占比

      对之前的查询表换一个查询方式,即对 count 数据再次分组

      一次现场mysql重复记录数据的排查处理实战记录

      从结果来看,绝大部分问题数据重复了2次

      where 和 having 的区别

      Where是一个 约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且where后面 不能使用聚合函数

      Having是一个 过滤声明,所谓过滤是 在查询数据库的结果返回之后进行过滤,即在结果返回之后起作用,并且having后面可以使用聚合函数。

      所谓 聚合函数,是对一组值进行计算并且返回单一值的函数:sum---求和,count---计数,max---最大值,avg---平均值等。

      总结

      在 mysql 的查询操作中,我们日常用到的,一般都是多表联查,将查询的结果当成中间表进行多次查询,对查询的结果做分组,做统计汇总等操作

      如果查询操作中使用了函数计算或者是分组,典型的特征就是将原始表的多条记录合并成一条,就需要 having 对这些操作的结果进行过滤,除此之外,使用 where 对表记录进行条件过滤即可

      来源:https://juejin.cn/post/7011374414394556452

      标签:mysql,重复,数据
      0
      投稿

      猜你喜欢

    • JS数组方法汇总

      2009-08-03 14:06:00
    • Python3爬虫RedisDump的安装步骤

      2023-07-17 00:42:15
    • python使用requests.session模拟登录

      2022-09-12 19:17:24
    • python 字符串转列表 list 出现\\ufeff的解决方法

      2023-11-24 18:47:06
    • Python OpenCV特征检测之特征匹配方式详解

      2021-07-20 00:51:58
    • pytorch教程之网络的构建流程笔记

      2021-11-24 10:58:59
    • 用javascript替换URL中的参数值示例代码

      2023-08-30 03:58:09
    • 一个入门级python爬虫教程详解

      2023-03-27 17:34:08
    • python基础学习之组织文件

      2022-04-08 21:47:23
    • Python tkinter布局与按钮间距设置方式

      2023-09-28 23:43:27
    • gulp-htmlmin压缩html的gulp插件实例代码

      2023-08-06 01:20:18
    • python使用__slots__让你的代码更加节省内存

      2023-03-15 06:33:57
    • AlternatingItemTemplate类似于 ItemTemplate 元素

      2023-07-14 13:09:07
    • Python趣味挑战之用pygame实现飞机塔防游戏

      2022-07-18 04:00:02
    • 微信小程序新手教程之启动页的重要性

      2023-07-02 05:26:00
    • 有趣的python小程序分享

      2023-11-27 20:31:55
    • SQLserver删除某数据库中所有表实现思路

      2024-01-25 21:06:40
    • 详解小白之KMP算法及python实现

      2022-08-29 09:09:17
    • 在python中的socket模块使用代理实例

      2023-09-02 13:41:30
    • Python的SimpleHTTPServer模块用处及使用方法简介

      2023-05-11 06:04:51
    • asp之家 网络编程 m.aspxhome.com