从Access DB中的表中删除重复行

时间:2015-06-12 16:14:09

标签: sql database ms-access-2010

我正在尝试创建一个查询,删除 Access 2010 表中的所有重复行。并且我的问题是查询正在删除所有重复记录(甚至是原始的)

因此,假设我有1条原始记录和2条重复记录,因此煽动删除2条重复删除所有3条记录。

这就是我所做的:

DELETE *
    FROM Table
    WHERE [field1] IN (SELECT [field1] FROM [table] As Tmp 
    GROUP BY [field1],[field2],[field3],[field4],[field5] HAVING Count(*)>1);

请提出任何建议,谢谢。

2 个答案:

答案 0 :(得分:0)

这些命令应该在标准SQL服务器中运行。您必须对其进行测试,以确定Access是否对其做了任何有趣的事情。

WITH CTE AS(
   SELECT field1, field2,
       RN = ROW_NUMBER()OVER(PARTITION BY field1 ORDER BY field1)
   FROM table1
)

DELETE FROM CTE WHERE RN > 1

答案 1 :(得分:0)

试试这个:

DELETE *
   FROM Table
   WHERE [UniqueField] NOT IN (SELECT MIN([UniqueField]) FROM [table] As Tmp 
   GROUP BY [field1],[field2],[field3],[field4],[field5] HAVING Count(*)>1);

它也适用于MS-ACCESS。