我有一个用户表,其中包含以下字段id, first_name, last_name, street_address, city, state, zip-code, firm, user_identifier, created_at, update_at
。该表有很多重复项。
我想用first_name, last_name and street_address
模糊匹配它们。
我在这里做了
我创建了一个具有以下字段的新表
CREATE TABLE dupes(
id bigint NOT NULL,
first_name TEXT,
last_name TEXT,
street_address CHAR(50),
searched_name TEXT,
searched_user_id bigint
);
接下来,我有这个函子,它应该遍历字段并插入到相似度高于```.75]的新表(dupes
)中>
DO $$ DECLARE rec record; full_name varchar; BEGIN FOR rec IN SELECT id, first_name ||' '||last_name ||' '||street_address full_name FROM users LOOP INSERT INTO dupes(id,first_name,last_name, street_address,searched_name, searched_user_id) SELECT id,first_name,last_name, street_address,rec.full_name,rec.id FROM users WHERE similarity(first_name ||' '||last_name||' '||street_address, rec.full_name) > .75 and id<>rec.id; END LOOP; END $$;
不幸的是,我返回的每一行都有更多的副本。
我很新。谁能帮忙?
谢谢
我有一个用户表,该表具有以下字段id,first_name,last_name,street_address,城市,州,邮政编码,公司,user_identifier,created_at,update_at。这个表有很多...
这不要求进行程序编程。 (基于它进行设置甚至可能使您免于重复的重复…;-))