删除数据库 SQL 服务器上的重复记录

Remove duplicates records on database SQL Server

如果我有 table leads

id|phone|name
__|_____|_____
1 |123  |Test
2 |123  |Test
3 |111  |Test2
4 |123  |Test

如何删除其中重复的 phone 号码?因此,如果有 3 条记录 123 为 phone 编号,则应删除其他 2 条重复记录。

;WITH cte AS 
(
    SELECT *, RowNum = ROW_NUMBER() OVER (PARTITION BY phone, name ORDER BY id)
    FROM tbl    
)
DELETE FROM cte
WHERE RowNum > 1

好的,从您的评论来看,您显然是数据库新手。所以我可以告诉你尝试分组。有很多方法可以解决你问的问题

在您的情况下,最简单的方法是分组依据

select min(id) as id ,phone,name from leads group by phone,name.

你仍然可以用 row_number 来完成。

评论里的link音乐不错。你应该试着自己去理解它