【发布时间】:2021-10-02 05:06:09
【问题描述】:
我有 2 个表 TabA 和 TabB。两者都没有任何键列。
在列方面,两者都是副本,并且有 80 多个列。
TabA 有 3000 万条记录。 TabB 只有 2000 条记录。
现在我需要比较两个表之间的所有列,因为没有关键列,并从 TabA 中删除重复记录。
我想找到比较两个表的最佳方法,而不是将所有 80 列放在 JOINS 或 WHERE 子句中。
【问题讨论】:
-
两个表中是否有任何唯一标识符?到目前为止你尝试了什么,你能告诉我们那个代码吗?
-
您好 Otter,感谢您对此进行调查。它是我们从源服务器进行 ETL 处理的日志表。由于 ETL 中的一些错误,我们将重复记录放入目标中。现在我们修复了 ETL 中的实际错误。但是现在我们需要从 Target 中删除重复项。我们已要求源数据库开发团队提供唯一记录,他们提供的列很少是唯一的,但是当我们将它们与目标进行比较时,我们再次发现重复的列更多。因此,我们决定比较所有列,并期待以最佳方法比较所有列的解决方案。
-
专业提示:印度以外的许多人不知道 crore 是什么。我个人不得不用谷歌搜索它,我敢打赌我不是唯一的——所以不是每个人都会明白什么是 3 千万。但是,每个英文读者都能看懂3000万,甚至3000万。
-
最好的方法是尝试识别这些表的自然键。希望它不是表范围的,但仅跨越几列。如果不是这样,那你就很难过。
-
嗨佐哈尔,谢谢。更新为 3000 万条记录,如果没有更好的解决方案来比较所有列,那么我将使用识别自然键。
标签: sql sql-server tsql duplicates