我有一个人员表,其中重复的人插入了不同的身份证。我想删除名称重复的人,只保留具有最小ID的人。 对于e.G,应保留具有ID 18398的Absalon记录,并删除所有其他重复记录。
答案 0 :(得分:13)
DELETE FROM persons WHERE id NOT IN (SELECT MIN(id) FROM persons GROUP BY name)
答案 1 :(得分:0)
WITH duplicatable As
( SELECT *, ROW_NUMBER() OVER( PARTITION BY name, ORDER BY id ASC ) as row_number FROM table_name
)
SELECT * FROM duplicatable WHERE row_number > 1