Varje gång du börjar tänka att du vill ha en lokaliserad GROUP BY bör du börja tänka på fönsterfunktioner istället.
Jag tror att du är ute efter något sånt här:
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
Du kanske vill lägga till något i ORDER BY för att konsekvent också bryta banden, men det skulle inte förändra den övergripande tekniken.