在 MS Access 中查找和删除重复值

Posted

技术标签:

【中文标题】在 MS Access 中查找和删除重复值【英文标题】:Finding and Removing Duplicate Values in MS Access 【发布时间】:2015-12-18 15:18:11 【问题描述】:

我在 Access 中有三列:

ZeroCurveID  MarkRunID  MarkAsOfDate
90-6589      6656       2/28/2012
90-6589      6656       2/28/2012
90-6589      6656       2/28/2012
14-8898      8898       8/12/2014
14-8898      8898       8/12/2014
14-8898      8898       8/12/2014
14-8898      8898       8/12/2014
14-8898      8898       8/12/2014
14-8898      8896*      8/12/2014
14-8898      8898       8/12/2014
14-8898      8898       8/12/2014
14-8898      8898       8/12/2014
14-8898      8898       8/12/2014

数据集有几千条记录。

每个ZeroCurveID 都应该有一个对应的MarkRunID 和一个MarkAsofDate。 同一个 ZeroCurveID 应该只有一个对应的 MarkRunID 和 MarkAsofDate。 但是,在整个集合中,有一些情况下,对于相同的 MarkasOfDate 和 ZeroCurveID,会有两个不同的 MarkRunID,例如上面示例中的 88968898(显示在星号处)。我需要确定这些重复出现的位置。

如何在代码中识别这些实例?我可以写什么查询来完成这个?

【问题讨论】:

【参考方案1】:

编写一个按您复制的字段分组的查询分组,并添加一个按主键计数的 COUNT() 列,无论是什么。然后按 COUNT() 列以降序对结果进行排序,以查看计数 > 1 的位置。这些是你的重复。

【讨论】:

好的,我有它按 dbo_ZeroCurves.ZeroCurveID、dbo_MarkRuns.MarkRunID、dbo_MarkRuns.MarkAsOfDate 分组。如何添加一列以按主键计数?【参考方案2】:

运行查找重复向导。

https://www.youtube.com/watch?v=OzB-EUvNwCE

让您的 Select Query 工作,然后将其更改为 Delete Query,然后运行它。

https://www.youtube.com/watch?v=amRbEhQWH78

【讨论】:

以上是关于在 MS Access 中查找和删除重复值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MS Access 2003 中删除具有唯一 ID 的重复条目?

MS SQL - 查找和删除重复项[重复]

运行时错误 3032,无法执行此操作 ms-access

MS Access SQL 多个 JOIN 和 WHERE 子句

如何批量检查 MS-Access 中的重复项并记录更改?

MS-Access 中的多个日期范围