delete from collect_order where (channel_id,op_date,currency) in ( select * from (select channel_id,op_date,currency from collect_order group by channel_id,op_date,currency HAVING count(*) > 1 ) t )
and id not in (select * from (select id from collect_order group by channel_id,op_date,currency) v )
这里的 in 后面的 select * from 必须得有才行