如果我有一张桌子leads
id|phone|name
__|_____|_____
1 |123 |Test
2 |123 |Test
3 |111 |Test2
4 |123 |Test
如何删除那里的重复电话号码?因此,如果有3条记录123
作为电话号码,则应删除其他2个重复记录。
答案 0 :(得分:2)
;WITH cte AS
(
SELECT *, RowNum = ROW_NUMBER() OVER (PARTITION BY phone, name ORDER BY id)
FROM tbl
)
DELETE FROM cte
WHERE RowNum > 1
答案 1 :(得分:1)
好的,从您的评论中,您显然是数据库新手。所以我可以告诉你尝试分组。有很多方法可以解决你问的问题
在您的情况下,最简单的方法是分组
select min(id) as id ,phone,name from leads group by phone,name.
你仍然可以使用row_number。
音乐在评论中提供的链接很好。你应该尝试自己理解