gpt4 book ai didi

sql - 查找和更新重复行

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:55:01 26 4
gpt4 key购买 nike

我需要实现一个查询(或者可能是一个存储过程)来对我的一个表中的数据执行软重复数据删除。如果任意两条记录足够相似,我需要“挤压”它们:停用一条并更新另一条。

相似度基于分数。分数计算方式如下:

  1. 从两条记录中,取 A 列的值,
  2. 值相等?将 A1 添加到分数中,
  3. 值不相等?从分数中减去 A2,
  4. 转到下一栏。

一旦检查了所有所需的值对:

  1. 结果得分是否超过 X?
  2. 是 - 记录重复,将记录标记为“重复”;将其 id 附加到 duplicate_ids 列到 较新的 记录。
  3. 不——什么都不做。

我将如何在 SQL 中解决这个任务?


有问题的表称为people。人员记录由不同的管理员输入。重复数据删除过程的存在是为了确保系统中不存在两个相同的人。

这项任务的动机很简单:表现。

目前,该解决方案是通过几个低于标准的 SQL 查询和基于它们的逻辑以脚本语言实现的。然而,数据量预计会增长到数千万条记录,脚本最终会变得非常慢(它应该通过 cron 每晚运行)。

我正在使用 postgresql。

最佳答案

看来去重一般是个棘手的问题。

我找到了这个:https://github.com/dedupeio/dedupe .关于其工作原理有一个很好的描述:https://dedupe.io/documentation/how-it-works.html .

我将探索去重。我不会尝试在 SQL 中实现它。

关于sql - 查找和更新重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48284494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com