删除数据库 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音乐不错。你应该试着自己去理解它
如果我有 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音乐不错。你应该试着自己去理解它