2017-08-05 130 views
2

如何删除重复记录?Firebird SQL删除重复记录

我使用此查询,但它删除太多。

delete from adaparselkomsulari 
where sn not in (select min(sn) 
       from adaparselkomsulari 
       group by sinirtipi, komsuadi); 

我想删除两列公用的记录。

look this picture

+0

你需要检查组计数在这里,不是会太宽泛。 –

+0

你能举个例子吗? –

+0

也许只有'HAVING COUNT(sn)> 1'丢失,或者多于一次存在。 – Myonara

回答

0

这个怎么样

delete from adaparselkomsulari a1 
    where exists(select first 1 1 from adaparselkomsulari a2 
       where a2.sinirtipi = a1.sinirtipi and a2.komsuadi=a1.komsuadi 
       and a1.sn<>a2.sn) 

delete from adaparselkomsulari a1 
    where (select count(*) from adaparselkomsulari a2 
       where a2.sinirtipi = a1.sinirtipi and a2.komsuadi=a1.komsuadi)>1