怎样删除表中的重复数据,谢谢大家

问题描述

怎样删除表中的重复数据,谢谢大家

表内容如下:
id fwbm kjbh sfxm dj yl .......................
52578 d01142 d011422015928 001 .400 0 54.70 54.70 0 0 2015-09-28 00:00:00.000 NULL
52579 d01142 d011422015928 040 2.990 2 5.98 5.98 0 0 2015-09-28 00:00:00.000 NULL
52580 d01142 d011422015928 042 1.000 2 2.00 2.00 0 0 2015-09-28 00:00:00.000 NULL
52581 d01142 d011422015928 001 .400 0 54.70 54.70 0 0 2015-09-28 00:00:00.000 NULL
52582 d01142 d011422015928 040 2.990 2 5.98 5.98 0 0 2015-09-28 00:00:00.000 NULL
52583 d01142 d011422015928 042 1.000 2 2.00 2.00 0 0 2015-09-28 00:00:00.000 NULL
52584 d01251 d012512015928 001 .400 0 54.70 54.70 0 0 2015-09-28 00:00:00.000 NULL
52585 d01251 d012512015928 040 2.990 2 5.98 5.98 0 0 2015-09-28 00:00:00.000 NULL
52586 d01251 d012512015928 042 1.000 2 2.00 2.00 0 0 2015-09-28 00:00:00.000 NULL
52587 d01251 d012512015928 001 .400 0 54.70 54.70 0 0 2015-09-28 00:00:00.000 NULL
52588 d01251 d012512015928 040 2.990 2 5.98 5.98 0 0 2015-09-28 00:00:00.000 NULL
52589 d01251 d012512015928 042 1.000 2 2.00 2.00 0 0 2015-09-28 00:00:00.000 NULL
52590 d01331 d013312015928 001 .400 0 54.70 54.70 0 0 2015-09-28 00:00:00.000 NULL
52591 d01331 d013312015928 040 2.990 2 5.98 5.98 0 0 2015-09-28 00:00:00.000 NULL
52592 d01331 d013312015928 042 1.000 2 2.00 2.00 0 0 2015-09-28 00:00:00.000 NULL
52593 d01331 d013312015928 001 .400 0 54.70 54.70 0 0 2015-09-28 00:00:00.000 NULL
52594 d01331 d013312015928 040 2.990 2 5.98 5.98 0 0 2015-09-28 00:00:00.000 NULL
52595 d01331 d013312015928 042 1.000 2 2.00 2.00 0 0 2015-09-28 00:00:00.000 NULL

表中每一个fwbm,如d01142 前三行数据和后三行数据是重复的 现在想批量删除后三行 主键为ID列

解决方案

delete from 表名 a? where a.rowid NOT IN? (select max(b.rowid) from 表名 b?? where a.字段1 = b.字段1 and??a.字段2 = b.字段2?)......
答案就在这里:删除表中重复数据
----------------------

解决方案二:

非常感谢robot-s

时间: 2024-11-25 12:57:59

怎样删除表中的重复数据,谢谢大家的相关文章

Oracle 查询与删除表中的重复记录sql语句

方法:  代码如下 复制代码 group by  XX having count(*)>1,rowid,distinct,temporary table,procedure 下面语句可以查询出那些数据是重复的:  代码如下 复制代码 select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1 将上面的>号改为=号就可以查询出没有重复的数据了. 想要删除这些重复的数据,可以使用下面语句进行删除  代码如下 复制代

MSSql简单查询出数据表中所有重复数据的方法_MsSql

本文实例讲述了MSSql简单查询出数据表中所有重复数据的方法.分享给大家供大家参考,具体如下: 这里直接给出下面的例子: SELECT * FROM SYS_LogContent slc WHERE slc.LogInfo_ID IN ( SELECT slc2.LogInfo_ID FROM SYS_LogContent slc2 GROUP BY slc2.LogInfo_ID HAVING COUNT(*)>1 ) 简单说明: 关键代码在于上面的括号中.要想查询出所有重复的数据,可以按照某

MSSql简单查询出数据表中所有重复数据的方法

本文实例讲述了MSSql简单查询出数据表中所有重复数据的方法.分享给大家供大家参考,具体如下: 这里直接给出下面的例子: SELECT * FROM SYS_LogContent slc WHERE slc.LogInfo_ID IN ( SELECT slc2.LogInfo_ID FROM SYS_LogContent slc2 GROUP BY slc2.LogInfo_ID HAVING COUNT(*)>1 ) 简单说明: 关键代码在于上面的括号中.要想查询出所有重复的数据,可以按照某

TRUNCATE 快速删除表中的所有数据

备注 与 DELETE 语句相比,TRUNCATE TABLE 具有以下优点: 所用的事务日志空间较少. DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一个条目.TRUNCATE TABLE 通过释放用于存储表数据的数据页来删除数据,并且在事务日志中只记录页释放. 使用的锁通常较少. 当使用行锁执行 DELETE 语句时,将锁定表中各行以便删除.TRUNCATE TABLE 始终锁定表和页,而不是锁定各行. 表中将毫无例外地不留下任何页. 执行 DELETE 语句后,表仍会包含

TRUNCATE 快速删除表中的所有数据_MsSql

备注 与 DELETE 语句相比,TRUNCATE TABLE 具有以下优点: 所用的事务日志空间较少. DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一个条目.TRUNCATE TABLE 通过释放用于存储表数据的数据页来删除数据,并且在事务日志中只记录页释放. 使用的锁通常较少. 当使用行锁执行 DELETE 语句时,将锁定表中各行以便删除.TRUNCATE TABLE 始终锁定表和页,而不是锁定各行. 表中将毫无例外地不留下任何页. 执行 DELETE 语句后,表仍会包含

在Oracle中如何利用Rowid查找和删除表中的重复记录

oracle|重复|重复记录 平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录. 下面总结一下几种查找和删除重复记录的方法(以表CZ为例):表CZ的结构如下:SQL> desc cz Name                                      Null?    Type ----------------------------------------- -------- ------------

如何去除数据表中的重复数据

通常情况下,一个我们在做一个产品的时候,一开始可能由于设计考虑不周或者程序写的不够严谨,某个字段上的值产生重复了,但是又必须去掉,这个时候就稍微麻烦了一点,直接加一个UNIQUE KEY肯定是不行了,因为会报错. 现在,我们来采用一种变通的办法,不过可能会丢失一些数据 :) 在这里,我们设定一个表,其结构如下: mysql> desc `user`;+-------+------------------+------+-----+---------+----------------+| Fiel

Excel怎么在两个工作表中查找重复数据

  2.现在我们的实例是从Sheet3工作表找出己经在Sheet4工作表中姓名相同的记录.因为我们现在在Sheet3工作表对应列中输入以下"=if(B2=" 如下图红框所示. 3.现在我们在excel中直接切换到Sheet4工作表中,然后如下图所示框选姓名区域,并按回车键. 4.现在再回到sheet3工作表后,补全公式"=if(B2=Sheet4!B2:B24,"是","否")"如下图所示. 5.然后将光标移动到单元格右下角,

Oracle 查找与删除表中重复记录的步骤方法_oracle

这时候如果临时表中有重复数据,无论是主键字段businessid有重复,还是一整行有重复都会报出违反唯一主键约束错误. 方法:group by XX having count(*)>1,rowid,distinct,temporary table,procedure 1.查询表中的重复数据a.重复一个字段 b.重复多个字段 c.重复一整行 创建测试表: 复制代码 代码如下: create table cfa (businessid number,customer varchar2(50),bra