Firebird Sql删除重复记录
如何删除重复记录 我正在使用此查询,但它删除的内容太多Firebird Sql删除重复记录,sql,duplicates,firebird,sql-delete,Sql,Duplicates,Firebird,Sql Delete,如何删除重复记录 我正在使用此查询,但它删除的内容太多 delete from adaparselkomsulari where sn not in (select min(sn) from adaparselkomsulari group by sinirtipi, komsuadi); 我想删除两列共有的记录 这怎么办 delete from adaparselkomsulari a1 where exists(s
delete from adaparselkomsulari
where sn not in (select min(sn)
from adaparselkomsulari
group by sinirtipi, komsuadi);
我想删除两列共有的记录
这怎么办
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)
你需要在这里检查组计数,而不是在太宽。你能举个例子吗?可能只有一个
的计数(sn)>1
缺失,或者任何存在不止一次的值。你使用的是哪个Firebird版本?我在Firebird 2.5和Firebird 3.0上尝试了你的查询,它们都产生了预期的结果(请注意,图像中保留SN=478的预期是错误的,它应该是SN=476)。您是否有关于SINIRTIPI
和/或KOMSUADI
的索引?
delete from adaparselkomsulari a1
where (select count(*) from adaparselkomsulari a2
where a2.sinirtipi = a1.sinirtipi and a2.komsuadi=a1.komsuadi)>1