前言

当我们的项目上线后就会发现用户并不会按照预想设想的方式去使用,因此提前设置好的检查代码并不会完全拦住用户的违规操作。因此,经常会出现重复的数据。而对于我正在维护的项目来说,一旦出现重复数据就是致命的问题,因为他要进行金额的核算。因此掌握sql查重、去重的操作是必备的。

PS:接手这个项目要做的第一个任务就是查询导入数据的时候出现了重复。

一、sql查重

重复数据分为两种情况:一是,整条数据一摸一样包括id,当然这种情况很少出现;二是,用来判断数据唯一性的字段出现了重复,比如存储人员信息的表格中姓名和身份证号码出现了两条数据,导致在计算该用户的金额的时候系统报错

SELECT name, id_card,count(*) as num
FROM user
WHERE 1=1  GROUP BY name,id_card HAVING count(*)>1;

select出的只能是group by分组的字段,这个的原因大概是因为其他字段有不重复的无法判断出应该显示哪个字段.

使用该语句就可显示出重复的数据,主要利用的是group by 分组的功能对指定字段进行分组

二、sql去重

查出重复数据后就要对重复数据进行清除,但是我们还需保留一条数据用于后续的操作处理,因此去重时还要保留一条数据

delete from user a where (a.name, a.id_card) in (select name, id_card from user group by name,id_card having count(*) >1
) and rowid not in (select max(rowid) from user group by name,id_card having count(*) >1
)

通过name,id_card 字段进行判断是否为重复数据,又利用rowid保存一条数据(通过max() 函数可以保留较大的rowid的数据,利用min() 函数就可以保留较小的rowid的数据),因此达到了去重留一的目的

个人理解可能错误,望诸位评论区纠正!!

sql查重、去重(留一)相关推荐

  1. mysql添加用户查重的方法_mysql 开发技巧之JOIN 更新和数据查重/去重

    主要涉及:JOIN .JOIN 更新.GROUP BY HAVING 数据查重/去重 1 INNER JOIN.LEFT JOIN.RIGHT JOIN.FULL JOIN(MySQL 不支持).CR ...

  2. Java实现文件查重去重

    Java实现文件查重去重 前言 大概流程 代码 前言 网上下的一些去重软件不是太慢就是去的不够干净,故用Java编写一个使用 大概流程 ① 遍历选定的文件并按照文件长度分组 ② 根据md5二次过滤分组 ...

  3. java中sql查重跟去重_sql中查重和去重

    在这记录一个实习期间遇到的一个查重和去重的sql语句. 查重语句:(group by 查重) SELECT user_id, count(*) as num FROM 表名 WHERE 条件  GRO ...

  4. java中sql查重跟去重_SQL去重distinct方法解析

    关注我的公众号获取自动化视频教程:搬砖的小测试 链接:https://pan.baidu.com/s/1ZXiWrytBLY4osCW6-d_-vQ 提取码:在公众号回复获取 一 distinct 含 ...

  5. 数据查重去重,数据匹配过程

    帮助更多需要自动化解决工作的人们. 步骤:不完整,重复,错误,格式不规范数据 -> 数据清洗 -> 正确规范数据 -> 数据去重技术 -> 数据匹配. 使用过的一些相关软件,查 ...

  6. SQL查询重复记录 sql 查重

    假设现有一张人员表(表名:Person),若想将姓名.身份证号.住址这三个字段完全相同的记录查找出来,使用 1: SELECT p1.* 2: FROM persons p1,persons p2 3 ...

  7. Python 计算MD5值 图片查重去重

    MD5 MD5 即 Message-Digest Algorithm 5(信息-摘要算法5).摘要算法又称哈希算法.散列算法. 它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进 ...

  8. MySql数据库:数据查重、去重的实现

    数据库的查重去重是java面试经常会被问到的问题,下面讲讲怎么实现这些,因为本人能力有限,所以只管实现,不考虑效率问题: 假设有一个表user,字段分别有id--nick_name--password ...

  9. python知网查重_用Python写了个检测抄袭/文章去重算法(nshash)

    中国人有句话叫"天下文章一大抄",但是在正规场合下"抄"是要付出代价的,比如考试.写论文是不能抄的,一旦被发现后果相当严重.在互联网出现之前,"抄&q ...

最新文章

  1. 浅显易懂 Makefile 入门 (10)— 嵌套执行 make、export 的使用
  2. .net课堂流水账_20110118
  3. 寄存器和常用的汇编指令
  4. 我如何调优SQL Server查询
  5. 650c公路车推荐_众望所归 多款短鼻公路车坐垫推荐
  6. python3学习笔记(9)_closure
  7. Ubuntu16.04安装WPS
  8. php 个人中心常见界面,UI设计灵感:个人中心界面设计(User Profile)
  9. 遇到个别手机前置摄像头相差90度的怪事
  10. python简明教程_06
  11. 怎么查看本机的IP地址
  12. Oracle 安装 与 卸载 以及 使用 plsqldev
  13. 50岁的哆啦A梦“撞”上63岁的卡西欧,阿里云数据中台告诉你火花能有多大
  14. kettle spoon 连接mysql数据库
  15. linux挂载40t硬盘,Centos支持40T磁盘阵列MD1200
  16. 树莓派控制16路PWM输出的PCA9685模块
  17. proteus中仿真51单片系列之---blink点灯程序
  18. jvectormap的自定义地图和区域上色、图片标记
  19. GBase 8s HAC高可用方案
  20. c语言篮球24秒计时器编程,[转载]篮球24秒计时器的设计

热门文章

  1. 【ubuntu】linux新建用户并分组,分配权限
  2. Codeforces 549H. Degenerate Matrix 二分
  3. Java 中删除List中指定的元素
  4. cartoon drawing_‎App Store 上的“卡通绘画(Cartoon drawing)”
  5. ts+vue3项目的echarts二次封装
  6. 秒懂Java类型(Type)系统
  7. Python实现自动生成测试用例
  8. Google[您的时钟快了]
  9. 冰冰学习笔记:内存操作函数
  10. 佳能450D上市 4月3号西安百余款相机报价汇总(ZT)