diff --git a/apps/dnet-orgs-database-application/src/main/resources/sql/importDedupEvents.sql b/apps/dnet-orgs-database-application/src/main/resources/sql/importDedupEvents.sql index aeebd8e7..c552e07d 100644 --- a/apps/dnet-orgs-database-application/src/main/resources/sql/importDedupEvents.sql +++ b/apps/dnet-orgs-database-application/src/main/resources/sql/importDedupEvents.sql @@ -20,7 +20,8 @@ DELETE FROM tmp_dedup_events WHERE oa_original_id IN ( SELECT oa_original_id FROM tmp_dedup_events GROUP BY oa_original_id HAVING count(oa_original_id) > 1) -AND (local_id = '' OR local_id is NULL OR local_id = oa_original_id); +AND (local_id = '' OR local_id is NULL OR local_id = oa_original_id) +AND (group_id = '' OR group_id is NULL); -- delete invalid relations (a raw org can not be suggested to multiple orgs) DELETE FROM tmp_dedup_events WHERE oa_original_id IN ( @@ -29,6 +30,13 @@ DELETE FROM tmp_dedup_events WHERE oa_original_id IN ( GROUP BY oa_original_id HAVING count(oa_original_id) > 1) AND local_id NOT LIKE 'openorgs____::%'; +-- delete invalid groups (only one row) +DELETE FROM tmp_dedup_events WHERE group_id IN ( + SELECT group_id + FROM tmp_dedup_events GROUP BY group_id + HAVING count(*) = 1 +); + -- IMPORT MISSING TERMS INSERT INTO id_types(val, name) SELECT distinct arr[2], arr[2] FROM (SELECT string_to_array(unnest(string_to_array(pid_list, '@@@')), '###') AS arr FROM tmp_dedup_events WHERE oa_original_id NOT LIKE 'openorgs\_\_\_\_::%') as c ON CONFLICT DO NOTHING;