Jedes Mal, wenn Sie anfangen zu denken, dass Sie ein lokalisiertes GROUP BY wollen, sollten Sie über Fensterfunktionen stattdessen.
Ich glaube, Sie wollen so etwas:
select unit_id, time, diag
from (
select unit_id, time, diag,
rank() over (partition by unit_id order by time desc) as rank
from diagnostics.unit_diag_history
) as dt
where rank = 1
Vielleicht möchten Sie etwas zu ORDER BY hinzufügen, um auch Bindungen konsequent zu lösen, aber das würde die Gesamttechnik nicht ändern.