2009-06-29 211 views
1

任何人都知道如何通过从下面的脚本编写新的方式来删除重复行以提高性能。删除重复行

DELETE lt1 FROM #listingsTemp lt1, #listingsTemp lt2 
    WHERE lt1.code = lt2.code and lt1.classification_id > lt2.classification_id and (lt1.fap < lt2.fap or lt1.fap = lt2.fap) 
+0

道歉,但我不明白这个问题。你能澄清“通过写下脚本的新方式”吗?另外,您是否希望仅执行一次,或者在进行的基础上,如果正在进行,您是否可以修改模式并添加标识列? – 2009-06-29 08:55:57

回答

1

1 - 为您的表(T1) 2的标识列(ID) - 通过你的桌子上做1组与你的条件,并得到重复记录的ID。 3 - 现在,只需从t1中删除记录,其中ID IN将重复设置ID。

2

Delete Duplicate Rows in a SQL Table

delete table_a 
where rowid not in 
(select min(rowid) from table_a 
group by column1, column2); 
+0

http://stackoverflow.com/questions/841447/delete-duplicate-sql-records – 2011-08-29 07:03:42

0

查找到BINARY_CHECKSUM ....你可以创建临时表时更迅速地确定数据是一样的可能是使用它....例如创建一个新的领域在这两个临时表存储binary_checksum值...然后只是删除那些领域等于

0

odiseh答案似乎是有效的(+1),但如果由于某种原因,你不能改变表的结构(因为你没有使用它的应用程序代码),你可以编写一份每一次都能运行的作业ht并删除重复项(使用Moayad Mardini代码)。