删除表里重复数据

  • 介绍

使用sql删除数据库中的重复数据

  • 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete   from   people where   peopleId     in   (select     peopleId     from   people     group     by     peopleId       having     count(peopleId)   >   1) and   rowid   not   in   (select   min(rowid)   from     people     group   by   peopleId     having   count(peopleId   )> 1) 3、查找表中多余的重复记录(多个字段) select   *   from   vitae   a where   (a.peopleId,a.seq)   in     (select   peopleId,seq   from   vitae   group   by   peopleId,seq     having   count(*)   >   1) 4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录 delete   from   vitae   a where   (a.peopleId,a.seq)   in     (select   peopleId,seq   from   vitae   group   by   peopleId,seq   having   count(*)   >   1) and   rowid   not   in   (select   min(rowid)   from   vitae   group   by   peopleId,seq   having   count(*)> 1) 5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录 select   *   from   vitae   a where   (a.peopleId,a.seq)   in     (select   peopleId,seq   from   vitae   group   by   peopleId,seq   having   count(*)   >   1) and   rowid   not   in   (select   min(rowid)   from   vitae   group   by   peopleId,seq   having   count(*)> 1)" style="border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
    select   *   from   people
    where   peopleId   in   (select     peopleId     from     people     group     by     peopleId     having     count(peopleId)   >   1)

    2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
    delete   from   people
    where   peopleId     in   (select     peopleId     from   people     group     by     peopleId       having     count(peopleId)   >   1)
    and   rowid   not   in   (select   min(rowid)   from     people     group   by   peopleId     having   count(peopleId   )> 1)

    3、查找表中多余的重复记录(多个字段)
    select   *   from   vitae   a
    where   (a.peopleId,a.seq)   in     (select   peopleId,seq   from   vitae   group   by   peopleId,seq     having   count(*)   >   1)

    4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
    delete   from   vitae   a
    where   (a.peopleId,a.seq)   in     (select   peopleId,seq   from   vitae   group   by   peopleId,seq   having   count(*)   >   1)
    and   rowid   not   in   (select   min(rowid)   from   vitae   group   by   peopleId,seq   having   count(*)> 1)

    5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
    select   *   from   vitae   a
    where   (a.peopleId,a.seq)   in     (select   peopleId,seq   from   vitae   group   by   peopleId,seq   having   count(*)   >   1)
    and   rowid   not   in   (select   min(rowid)   from   vitae   group   by   peopleId,seq   having   count(*)> 1)

时间: 2024-12-30 15:28:24

删除表里重复数据的相关文章

删除MySQL重复数据

原文:删除MySQL重复数据 删除MySQL重复数据 项目背景 在最近做的一个linux性能采集项目中,发现线程的程序入库很慢,再仔细定位,发现数据库里面很多冗余数据.因为在采集中,对于同一台设备,同一个时间点应该只有一个数据,然而,数据库中存入了多个数据.对于如何造成了这个结果,一时没有想清楚,但为了解决入库慢的问题,首先要删除冗余数据. 问题描述 数据库的表结构很简单,如下: +----------------+--------------+------+-----+---------+--

oracle 删除掉重复数据只保留一条

用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有

删除数据库重复数据

例如: id           name         value 1               a                 pp 2               a                 pp 3               b                 iii 4               b                 pp 5               b                 pp 6               c           

单链表之删除链表重复数据

1 public static void deleteDup(Node head){ 2 Node p = head; 3 while(p!=null){ 4 Node q = p; 5 while(q.next != null){ 6 if(p.data == q.next.data){ 7 q.next = q.next.next; 8 //不能加q = q.next; 9 }else{ 10 q = q.next; 11 } 12 } 13 p = p.next; 14 } 15 }

【ORACLE】删除表中重复数据

原因 在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来读诸多不便,那么怎么删除这些重复没有用的数据呢? 平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录. 处理方法 重复的数据可能有这样两种情况: 第一种:删除表中所有重复的数据 第二种:只保留重复数据中最新记录的一条记录[工作中常用] 删除重复数据的想法 每一行数据所对应的rowid都是独一无二的,及时表中两个数据

Windows 8.1 重复数据删除——规划部署(二)

一.规划部署目标   Windows 8.1&Server 2012 的重复数据删除设计为安装到主要数据卷上,而无需添加任何附加的专用硬件.这意味着你可以安装和使用该功能,而不会影响服务器上的主要工作负载.默认设置为非侵入性的,因为它们允许在处理特定文件之前数据"存留时间"达到五天,默认的最小文件大小为 32 KB.该实现是为低内存和 CPU 利用率而设计的.如果内存利用率变高,则重复数据删除功能将等待可用的资源.管理员可以根据所涉及数据的类型以及该卷或特定文件类型的更改频率和

Hyper-v Server重复数据删除技术

Hyper-v Server重复数据删除技术 老衲听说windows Server 2012中新增了一项技术叫做重复数据删除,据说这个重复数据删除可以大大的节省磁盘的空间,下面我们来看看什么是重复数据删除: 重复数据删除指的是在数据中查找和删除重复内容,而不会影响其保真度或完整性.其目标是通过将文件分割成大小可以改变 (32-128 KB) 的小区块.确定重复的区块,然后为每个区块保留一个副本,从而在更小的空间中存储更多的数据.区块的冗余副本由对单个副本的引用所取代.区块会进行压缩,然后以特殊的

Windows Server 2012 重复数据删除

存储一直是企业降低运营成本的一项重大阻力,虽然近年来存储的成本一直在降低,但是企业数据量的增长速度却远远超过存储成本的降低速度,因此如何降低存储给企业带来的压力也是IT人员的一大考验 在Windows Server 2012中微软带来了一项令人惊喜的功能,他的名字叫做重复数据删除,重复数据删除使得 Windows Server 2012 能够在更少的物理空间中存储更多的数据,并获得比以前版本的 Windows 操作系统明显更高的存储效率. 简单阐述下重复数据删除的原理,在Windows Serv

orcale删除重复数据

1.删除orcale重复数据, delete from da_door awhere (a.dt,a.key1) in (select dt,key1 from da_door group by dt,key1 having count(*) > 1)and rowid not in (select min(rowid) from da_door group by dt,key1 having count(*)>1)