当前位置: 首页 > 面试题库 >

删除基于多列的重复记录

梁福
2023-03-14
问题内容

在我们的系统中,我们每小时从外部数据库导入一次。由于导入脚本中的错误,现在有一些重复的记录。

如果任何记录具有:legacy_id和,则视为重复:company

我可以运行什么代码来查找和删除这些重复项?

我在玩这个:

Product.select(:legacy_id,:company).group(:legacy_id,:company).having("count(*) > 1")

它似乎返回了一些重复项,但是我不确定如何从那里删除?

有任何想法吗?


问题答案:

您可以尝试以下方法:

Product.where.not(
  id: Product.group(:legacy_id, :company).pluck('min(products.id)')
).delete_all

还是纯sql:

delete from products
where id not in ( 
   select min(p.id) from products p group by p.legacy_id, p.company
)


 类似资料:
  • 问题内容: 我使用以下方式列出了重复项: 现在,如何删除除一条消息以外的所有消息(我正在尝试删除重复项,以便可以在上应用唯一索引)。 问题答案: 使用和分配行号,以便删除重复对中除一个以外的所有行。

  • 对于包含10列的数据框,如何删除索引2以上的列。数据框如下所示: 任务是删除列3-列10

  • 我有一个这样的数据帧(): 我想基本上删除重复记录,以便字段是唯一的。我不关心被丢弃的记录,在这种情况下,地址已经被删除,所以唯一通过的是拼写错误。我想要以下结果的数据框: 在R中,基本上是这样做的: 但是我需要一种方法在熊猫身上做到这一点。

  • 本文向大家介绍python删除列表中重复记录的方法,包括了python删除列表中重复记录的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python删除列表中重复记录的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 假设对象数组如下: 如果标签和颜色相同,则为重复条目。在这种情况下,id=1和id=5的对象是重复的。 如何筛选此阵列并删除重复项? 我知道一些解决方案,在这些解决方案中,您可以使用以下内容对一个键进行过滤: 但是多个键呢? 根据评论中的要求,以下是预期结果:

  • 我有一个数据框和大多数列'arr'有一个日期正确格式化为 几张坏唱片都有问题 比如2019/02/10,我想放弃它们。 我试过这个: 但我收到一条错误信息: 我的方向对吗?