Se non ho capito fischi per fiaschi tu vuoi estrarre il record piu' recente (ovvero con l'id piu' alto) per ogni codice, codiceimmobile, tipocolloquio...

Per prima cosa devi selezionare gli id piu' alti:

select max(id) from colloqui group by codiceimmobile,codice,tipocolloquio

quindi usarli per estrarre i records completi:

select * from colloqui where id in (select max(id) from colloqui group by codiceimmobile,codice,tipocolloquio)

a questo punto li puoi ordinare come ti pare

ciao