【问题标题】:How to delete duplicate records in SQL that differ in a single field?如何删除SQL中单个字段不同的重复记录?
【发布时间】:2011-04-12 09:07:31
【问题描述】:

我正在使用 Access 2007。

我有一个包含大约 20 个字段的表格。其中一个字段是自动编号 ID,因此它是唯一的。我在这张表中有很多记录,它们的自动编号 ID 不同。我不能只删除具有奇数或偶数 ID 的那些,因为某些重复项对既有奇数也有偶数。关于如何从每对中选择一条记录进行删除有什么想法吗?

我知道这可能用 VBA 完成,但我对 Access VBA 还不是很熟悉,所以我正在寻找一个纯粹基于 SQL 的解决方案。

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:
    DELETE *
    FROM yourTable
    WHERE id NOT IN
      ( SELECT min(id)
        FROM yourTable
        GROUP BY field2
               , filed3
               , field4
               , etc...      <--- all other fields, except id
      )
    

    【讨论】:

      【解决方案2】:

      删除那些不是 min(id) 的,按其他表示等价的列分组。

      【讨论】:

      • 我不知道如何使用 min() 来获得我想要的东西,所以我最终使用了这个:stackoverflow.com/questions/18932/… 但是 min() 看起来很有用,谢谢你指点我。
      猜你喜欢
      • 1970-01-01
      • 2020-03-31
      • 2019-10-07
      • 2021-11-16
      • 1970-01-01
      • 2020-07-16
      • 2021-02-13
      • 1970-01-01
      相关资源
      最近更新 更多