这是我的桌面测试
id identifier
--- ---------
1 zz
1 zzz
3 d
5 w
7 v
8 q
9 cc
9 ccc
在这里,我想删除重复的 id 并保留最新的 id。标识符可以有重复的值,这无关紧要,但 id 应该是唯一的。
我写了这个查询来解决这个问题,但问题是它进入了一个无限循环。
请帮我解决这个问题,因为我看不到错误。谢谢
delete test
from test
inner join(
select max(id) as lastId, identifier
from test
where id in (
select id
from test
group by id
having count(*) > 1
)
group by id
)dup on dup.id = test.id
where test.id<dup.id