Python 搜索重复项

Python 搜索重复项,python,django,postgresql,search,duplicates,Python,Django,Postgresql,Search,Duplicates,我在SQL表中有二十万条记录。该模型有6个字段。认为duplicate是3个或更多字段与此表中任何其他元组的匹配。我需要找到此表中每一行的重复项及其编号,如下所示: select * from ( select n.id as needle_id, h.id as haystack_id, case when n.a = h.a then 1 else 0 end + case when n.b = h.b then 1 else 0 end + case when n.c = h

我在SQL表中有二十万条记录。该模型有6个字段。认为duplicate是3个或更多字段与此表中任何其他元组的匹配。我需要找到此表中每一行的重复项及其编号,如下所示:

select * from (
select
 n.id as needle_id,
 h.id as haystack_id,
 case when n.a = h.a then 1 else 0 end 
 + case when n.b = h.b then 1 else 0 end 
 + case when n.c = h.c then 1 else 0 end
 + case when n.d = h.d then 1 else 0 end
 + case when n.e = h.e then 1 else 0 end
 + case when n.f = h.f then 1 else 0 end as matching_columns_count
from 
 my_table n
join 
 my_table h 
on 
 n.a = h.a 
 or n.b = h.b
 or n.c = h.c
 or n.d = h.d
 or n.e = h.e
 or n.f = h.f
order by 
 matching_columns_count desc
) z where matching_columns_count >= 3
其中{a,b,c,d,e,f}是表中列的名称


我怀疑这会运行得很快

这是对你想做什么的非常模糊的描述。能否请您添加更多关于模式的详细信息,以及您希望使用哪些字段来查找重复项?在我看来,这实际上是一个糟糕的建模。通常,如果您以这种方式处理列,这些列实际上应该是另一个表中的行,那么您基本上可以在这里查看数据库表的数据透视。