一尘不染

如何基于特定字段从数据库表中删除重复项

sql

我有一个表,莫名其妙地被复制了。我基本上想删除所有重复的记录,这是由我表中名为SourceId的字段定义的。每个源ID只能有一个记录。

我是否可以编写任何删除所有重复项的SQL,以便每个Sourceid只有一条记录?


阅读 156

收藏
2021-03-17

共1个答案

一尘不染

假设您具有可以打破重复的sourceid的列ID,则可以使用它。使用将min(id)导致它仅保留每个sourceid批次的min(id)。

delete from tbl
where id NOT in
(
select  min(id)
from tbl
group by sourceid
)
2021-03-17