Tôi sẽ chạy một con trỏ (với ngôn ngữ lập trình MySQL SP, Java, Python, .NET) trên truy vấn này:
select Name, Firstname, Lastname, count(1)
from Pruebas
group by Name, Firstname, Lastname
having count(1) > 1
Sau đó, trên các hàng được trả về từ con trỏ, chỉ cần làm bất cứ điều gì bạn cần:kiểm tra phiên bản FIN%, kiểm tra sự hiện diện của PersonalKey và cập nhật cho phù hợp.
Đối với mỗi hàng trên con trỏ, bạn có thể mở một con trỏ khác bằng:
select *
from Pruebas
where Name = the_Name
and Firstname = the_Firstname
and Lastname = the_Lastname
Và bây giờ, bạn sẽ có một con trỏ bên trong với tất cả các hàng bạn sẽ sửa đổi. Nếu nó là cái bạn cần, hãy giữ nó và cập nhật nó với giá trị KEY mà bạn đã đề cập. Nếu không, hãy xóa nó.
Trong Oracle, bạn có thể đạt được những gì bạn muốn trong một truy vấn, nhưng tôi không nghĩ rằng theo cách đó, bạn sẽ nhận được hiệu suất tương tự như cách tiếp cận này.
Hy vọng nó sẽ hữu ích.