delete from table a
where (a.ziduan_0,a.ziduan_1,a.ziduan_2) in (
select ziduan_0,ziduan_1,ziduan_2from table where ziduan_0!='0' group by ziduan_0,ziduan_1,ziduan_2 having count(*) > 1
)
and rowid not in (
select min(rowid) from table where ziduan_0!='0' group by ziduan_0,ziduan_1,ziduan_2 having count(*)>1
)