Бих пуснал курсор (с език за програмиране MySQL SP, Java, Python, .NET) на тази заявка:
select Name, Firstname, Lastname, count(1)
from Pruebas
group by Name, Firstname, Lastname
having count(1) > 1
След това, на върнатите редове от курсора, просто направете каквото трябва:проверете за екземпляр FIN%, проверете за присъствието на PersonalKey и актуализирайте съответно.
За всеки ред на курсора можете да отворите различен курсор с:
select *
from Pruebas
where Name = the_Name
and Firstname = the_Firstname
and Lastname = the_Lastname
И сега ще имате вътрешен курсор с всички редове, които ще промените. Ако е този, от който се нуждаете, запазете го и го актуализирайте с КЛЮЧОВАТА стойност, която споменахте. В противен случай го изтрийте.
В Oracle бихте могли да постигнете това, което искате с една заявка, но не мисля, че по този начин ще получите същата производителност, която бихте получили с този подход.
Надявам се да помогне.