我搞砸了一个数据库表,现在有多个副本。现在我想删除所有重复项。我发现它们都有以下查询:
选择order_uuid,changed_at,count(*)来自……
你的问题的答案是使用元组并删除 count(*) 来自 select :
count(*)
select
delete from mobisl_1.t_order_states where (ORDER_UUID, changed_at) in (select order_uuid, changed_at from mobisl_1.t_order_states group by order_uuid, changed_at having count(*) > 1 );
这回答了你问的问题。但是,我认为这不是你真正想要做的。通常情况下,我想保留 一 具有重复项的行。
如果你想保留其中一行,那么要么做一些研究,要么提出另一个问题。