Это должно быть просто, используя оконные функции, которые доступны в Oracle с ранних версий:
SELECT x.id, x.type, x.last_name, x.first_name
FROM (
SELECT t.*, COUNT(DISTINCT type) OVER (PARTITION BY last_name, first_name) cnt
FROM mytable t
) x WHERE x.cnt > 1
Внутренний запрос назначает каждой записи количество различных типов для текущего кортежа имени / фамилии,и внешний запрос выводит строки со счетчиком 1.
Демонстрация на DB Fiddle :
ID | TYPE | LAST_NAME | FIRST_NAME
-: | :--- | :-------- | :---------
1 | A | Billy | John
4 | C | Billy | John