Ik zou een cursor uitvoeren (met MySQL SP-programmeertaal, Java, Python, .NET) op deze vraag:
select Name, Firstname, Lastname, count(1)
from Pruebas
group by Name, Firstname, Lastname
having count(1) > 1
Doe vervolgens op de geretourneerde rijen van de cursor wat u wilt:controleer op het FIN%-exemplaar, controleer op de aanwezigheid van PersonalKey en werk dienovereenkomstig bij.
Voor elke rij op de cursor kun je een andere cursor openen met:
select *
from Pruebas
where Name = the_Name
and Firstname = the_Firstname
and Lastname = the_Lastname
En nu heb je een innerlijke cursor met alle rijen die je gaat wijzigen. Als het degene is die je nodig hebt, bewaar het dan en werk het bij met de KEY-waarde die je noemde. Verwijder het anders.
In Oracle zou je in één query kunnen bereiken wat je wilt, maar ik denk niet dat je op die manier dezelfde prestaties krijgt als met deze aanpak.
Ik hoop dat het helpt.