我们在数据库运维环境中有时会出现需删除表中重复数据的情况,比如说,导入时重复导入了,这时候我们怎么办?如何删除重复的数据,保证数据的正确性和完整性?
操作系统:中标麒麟6.0
数据库系统:DM8
我们先来创建一张测试表test
SQL>create table test(id int,name varchar(50));
手动在表test中添加重复记录
insert into test values(1,'aaa');
insert into test values(1,'aaa');
insert into test values(2,'bbb');
insert into test values(2,'bbb');
insert into test values(3,'ccc');
insert into test values(3,'ccc');
insert into test values(4,'ddd');
commit;
select * from test;
使用简单的sql语句删除重复记录多余部分只保留一条
delete from test a
where
(a.id,a.name) in(select id,name from test group by id,name having count(*) > 1)
and rowid not in (select min(rowid) from test group by id,name having count(*)>1);
commit;
执行完成,我们commit提交一下。然后我们再去看看test表里面的重复数据是不是都删除了呢?
果然!重复数据都删除了,