Python 搜索重复项
我在SQL表中有二十万条记录。该模型有6个字段。认为duplicate是3个或更多字段与此表中任何其他元组的匹配。我需要找到此表中每一行的重复项及其编号,如下所示: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
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}是表中列的名称
我怀疑这会运行得很快这是对你想做什么的非常模糊的描述。能否请您添加更多关于模式的详细信息,以及您希望使用哪些字段来查找重复项?在我看来,这实际上是一个糟糕的建模。通常,如果您以这种方式处理列,这些列实际上应该是另一个表中的行,那么您基本上可以在这里查看数据库表的数据透视。