【发布时间】:2019-12-06 23:39:25
【问题描述】:
我有一个表 Emp 有这样的记录
Id Name
1 A
2 B
3 C
1 A
1 A
2 B
3 C
现在我想从表中删除重复的行 我正在使用此查询来选择或计算重复记录的数量
SELECT NameCol, COUNT(*) as TotalCount FROM TestTable
GROUP BY NameCol HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC
我应该写什么查询来从表中删除重复的行。
如果我编写此查询以删除重复记录,那么它会给出 (0) row Affected 结果。
`DELETE FROM TestTable
WHERE ID NOT IN ( SELECT MAX(ID) FROM
TestTable
GROUP BY NameCol
)`
【问题讨论】:
-
您只想删除它们,或者您想使用获取不同记录的计数?后者可以使用 distinct 关键字
标签: sql sql-server sql-server-2008