我们有一个 table 其中有 millions of records . 我们必须这么做 delete duplicate records 从 table . 最好的方法是什么。我想我要的 distinct record 在另一个 table 然后 truncate 这个 original table. 在那之后我会的 insert 回到原始记录。我回答了这个问题 interview ,还是被拒绝了。有谁能提出更好的处理方法吗。
table
millions of records
delete duplicate records
distinct record
truncate
original table.
insert
interview
o75abkj41#
这是我通常使用的:
delete from your_table a where a.rowid > (select min(b.rowid) from your_table b where a.join_column = b.join_column );
你的选择没那么糟糕;当您希望保留表数据集的一部分并删除其余部分时,它可以正常工作,因此“保存”所需的值、截断表(这比删除操作快)和将保存的行移回更快。如果面试官告诉你你的答案有什么问题,你会更容易猜测。另外,如果您感兴趣,可以在orafaq网站上查看更多删除重复项的方法。
gdrx4gfi2#
最好的方法是使用相关查询和行id,如果表x有大量的记录,并且您想从中删除一些记录。
kmbjn2e33#
别再看了。chrissaxon写了一篇关于如何用sql查找和删除重复行的博客
3条答案
按热度按时间o75abkj41#
这是我通常使用的:
你的选择没那么糟糕;当您希望保留表数据集的一部分并删除其余部分时,它可以正常工作,因此“保存”所需的值、截断表(这比删除操作快)和将保存的行移回更快。
如果面试官告诉你你的答案有什么问题,你会更容易猜测。
另外,如果您感兴趣,可以在orafaq网站上查看更多删除重复项的方法。
gdrx4gfi2#
最好的方法是使用相关查询和行id,如果表x有大量的记录,并且您想从中删除一些记录。
kmbjn2e33#
别再看了。chrissaxon写了一篇关于如何用sql查找和删除重复行的博客