关闭

一起做面试题--如何删除数据库表中的重复数据

1205人阅读 评论(0) 收藏 举报
分类:

这个问题也经常考到,所以我就来说一下。

假设有这样的数据:


表名asshole,字段如上。

思路就是先确定重复记录的判断依据,这里的一句就是name,symptom,age三个字段都相同。所以先用group by语句查出相同name、symptom、age字段下的最小id是什么?必须确保有个自增字段或者能区分他们的字段,否则很难办了就,正常数据库表都有主键字段。

第一个SQL如下:

select min(id) from asshole group by name,symptom,age;

这个SQL查询出了以后三个字段分组,id最小的那个。

删除的话,就保留id最小的那个其他都删了就行了。

完整SQL如下

delete from asshole where not exists (select 1 from (select min(id) as min from asshole group by name,symptom,age) k where k.min=id);

就是把非分组后最小id的其他id记录都删掉。

1
1
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

如何删除数据库中重复的记录

如何删除数据库中重复的记录 来源:   作者:
  • turkeyzhou
  • turkeyzhou
  • 2008-03-04 21:59
  • 6738

MySql数据库去除重复的数据

今天群内有群友提出了一个问题,就是MySql中删除
  • jeepxiaozi
  • jeepxiaozi
  • 2014-10-12 19:09
  • 14543

mysql数据库表中删除某一列值重复的全部行和只留一条

ORACLE删除表中某一列重复的行 http://www.cnblogs.com/CodingArt/archive/2012/03/27/2419500.html ORACLE  删除表中...
  • zygzzp
  • zygzzp
  • 2013-10-16 00:29
  • 4685

postgresql数据库三种删除重复数据的方法

PG数据库几种删除重复数据的方法在使用PG数据库的这段时间,总结了三种删除重复数据的方法,其中最容易想到的就是最常规的删除方法,但此方法性能较差,删数据耗时较久,虽容易实现,但性能太差,影响写数据的速...
  • arcticJian
  • arcticJian
  • 2015-11-25 21:18
  • 2083

插入MySQL数据库前去除重复数据的几种方法

若数据不存在插入,存在更新 使用duplicate key关键字,如插入数据时发生主键冲突就更新数据 使用Ingore关键字 使用replace into关键字 一、若数据不存在插入,存在更新: ...
  • u011389474
  • u011389474
  • 2016-10-15 14:06
  • 1209

【剑指Offer学习】【面试题57:删除链表中重复的结点】

题目:在一个排序的链表中,如何删除重复的结点?解题思路  解决这个问题的第一步是确定删除的参数。当然这个函数需要输入待删除链表的头结点。头结点可能与后面的结点重复,也就是说头结点也可能被删除,所以在链...
  • DERRANTCM
  • DERRANTCM
  • 2015-07-12 07:24
  • 2219

剑指offer 面试题57 删除链表中重复的结点

剑指offer 面试题57 删除链表中重复的结点 题目: 在一个排序的链表中,如何删除重复的结点? 例如,链表 1 -> 2 -> 3 -> 3 -> 4 -> 4 -> 5, ...
  • liyazhou0215
  • liyazhou0215
  • 2017-06-18 15:31
  • 296

【剑指Offer】面试题57:删除链表中重复的结点

一:题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 二:解题...
  • u010059070
  • u010059070
  • 2017-07-17 15:45
  • 109

【剑指Offer】面试题57:删除链表中重复的结点

一:题目描述 在一个排序的链表中,如何删除重复的结点? 如  1->2->3->3->4->4->5 删除重复的结点后链表变成: 1->2->5 二:解题思路 如果当前节点的值与下...
  • u010059070
  • u010059070
  • 2017-08-06 11:55
  • 134

面试题57:删除链表中重复的结点

算法思想:方法一,递归实现。 public class Solution {     public ListNode deleteDuplication(ListNode pHead) {     ...
  • ddd_1206
  • ddd_1206
  • 2017-07-16 16:51
  • 90
    个人资料
    • 访问:46177次
    • 积分:2051
    • 等级:
    • 排名:千里之外
    • 原创:162篇
    • 转载:0篇
    • 译文:0篇
    • 评论:15条
    文章分类
    最新评论