Hver gang du begynder at tænke på, at du vil have en lokaliseret GROUP BY, bør du begynde at tænke på vinduefunktioner i stedet.
Jeg tror, du er ude efter noget som dette:
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 vil måske tilføje noget til BESTIL BY for også konsekvent at bryde båndene, men det ville ikke ændre den overordnede teknik.