通过某些列识别重复的行并删除

通过某些列识别重复的行并删除

我有 9000k 行和 > 10 列的 SQL 结果。我需要删除重复行,这些行有另一行与 4 列匹配(不是完全重复的行)。我研究并尝试了各种方法,但都无法让我成功。这是一次性数据转换和转换测试。

因此,如果第 1 行和第 22 行在 A1 - A22、D1 - D22、H1 - H22 和 K1-K22 列中具有相同的值,那么它就是重复的,我需要删除其中一个(另一列中的日期较晚)

如果我可以在 SQL 中做到这一点,那就太好了,但是我的权限和表访问权限有限(理所当然!)并且无法执行所有 SQL 功能。(例如创建表)。

答案1

你可以做类似这样的事:

DELETE FROM table
WHERE rowid NOT IN (
SELECT MIN(rowid) 
FROM table
GROUP BY col1, col2
)

将 table 替换为您要搜索的表,将 col1 和任何其他列替换为您需要将某些内容归类为重复项的列,并将 rowid 替换为您的索引列。

相关内容