Използвайте KEEP LAST
на Oracle за да намерите най-добрия rc_document_id
за document_id
. След това изтрийте всички останали.
delete from rc_document
where rc_document_id not in
(
select max(d.rc_document_id) keep (dense_rank last order by dg.priority)
from rc_document d
join rc_document_group dg using (rc_document_group_id)
group by d.document_id
);
Демонстрация на Rextester:http://rextester.com/NZVZGF52818