原创地址:http://www.cnblogs.com/252e/archive/2012/09/13/2682817.html 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录 DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(...
背景:有两个数据库(源数据库,和目标数据库),每天把源数据库了数据同步到目标数据库中,由于各种原因,怕数据丢失,所有同步8天前后的数据(有主键,不要担心重复,每天十几万条,表中已经有6千万条),但是不知道哪天有同事把主键误drop掉。 统计的BI报表数据多的离谱。经过的一番折腾,问题解决了。下面总结一下几种方法: 1)闪回:oracle有闪回技术,可以利用recyclebin(回收站)查询删除的...
原因在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来读诸多不便,那么怎么删除这些重复没有用的数据呢?平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录。处理方法重复的数据可能有这样两种情况:第一种:删除表中所有重复的数据第二种:只保留重复数据中最新记录的一条记录【工作中常用】 删除重...
背景:ORACLE查询当前资产状态,包含资产信息(表1),资产维修状态(表2),资产报废状态(表3)
如下:
资产信息:资产维修:资产报废:
<img alt="技术分享" src="http://www.mamicode.com/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAskAAACCCAIAAAA7V8I8AAAdhklEQVR4nO2dO47jvpbGtakKvJuKDPQuCjeoiwsM4Ekm/+eFiQbwMnoDFfYGegeawGWZPC8eUpTMI38/NBpliY/Dh8hPJEVO//r3f/9l/Oe//mcGAAAAAKhngrYAAAAAQEegLQAAAADQk7K2+Prf/8M...
比如现在有一人员表 (表名:peosons)
drop table PERSONS;
create table PERSONS
(PNAME VARCHAR2(50),CARDID VARCHAR2(18),ADDRESS VARCHAR2(100)
);
insert into persons ( PNAME, CARDID, ADDRESS)
values ( 张三, 430682199002121010, 深圳);
insert into persons ( PNAME, CARDID, ADDRESS)
values ( 李四, 430682199002121010, 深圳);
insert into persons ( PNAME, CARDID, ADDRESS)
values ( 王五, 4306821990021210...
原创地址:http://www.cnblogs.com/252e/archive/2012/09/13/2682817.html
查询及删除重复记录的SQL语句
1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断
select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录
DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVIN...
创建中间表
CREATE TABLE ATT_SCATTER_REQ_NUM_TEMP AS (SELECT distinct * FROM ATT_SCATTER_REQ_NUM);--核对是否将不含重复数据的数据插入中间表
select count(1) from ATT_SCATTER_REQ_NUM_TEMP;--删除原表中的所有数据
delete from ATT_SCATTER_REQ_NUM;---将中间表的数据插入原表
insert into ATT_SCATTER_REQ_NUM select * from ATT_SCATTER_REQ_NUM_TEMP;--数据是否正确
select count(1) from ATT_SCATTER_REQ_NUM NUM;由于...
1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断
select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录
DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY id HAVING COUNT(*) > 1);
3、...
查询及删除重复记录的SQL语句
1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断
select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录
DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY i...
查询及删除重复记录的SQL语句
1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断
select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录
DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY i...
* from 表 where Id in (select Id from 表 group byId having count(Id) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录
DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY id HAVING COUNT(*) > 1);
3、查找表中多余的重复记录(多个字段)
select * from 表 a where (a.Id,a.seq...
* from 表 where Id in (select Id from 表 group byId having count(Id) > 1)2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY id HAVING COUNT(*) > 1);3、查找表中多余的重复记录(多个字段)select * from 表 a where (a.Id,a.seq) in(selec...
SQL重复记录查询方法
2008年08月14日 星期四 21:01SQL重复记录查询
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere 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...
* from(select tmp.*,rownum rn from(select * from table1 where column1 =‘12345‘ order by column2,column3 desc) tmp where rownum<=30
) where rn>20问题:在我的项目中,当rownum<=20 , rn>10的数据和rownum<=30 , rn>20的数据一样。
解决办法:后来在order by 的列上加了id ,就可以了,如下:select * from(select tmp.*,rownum rn from(select * from table1 where column1 =‘12345‘ order by column2,column3 desc,i...
1、查询重复数据select * from 表名 where 重复字段(一般为主键)in (select 重复字段 from 表名 group by 重复字段 having count(WF_OID)>1)
Select 重复字段,Count(*) From表名 Group By 重复字段 Having Count(*) > 1
2、删除重复数据DELETE from 表名 WHERE (id) IN ( SELECT 重复字段 FROM 表名 GROUP BY 重复字段HAVING COUNT(重复字段) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表名GROUP BY 重复字段 HAVING COU...