Elke keer dat je begint te denken dat je een gelokaliseerde GROUP BY wilt, moet je beginnen na te denken over vensterfuncties in plaats daarvan.
Ik denk dat je op zoek bent naar iets als dit:
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
Je zou misschien iets aan de ORDER BY willen toevoegen om ook consequent de banden te verbreken, maar dat zou de algehele techniek niet veranderen.