Bất cứ khi nào bạn bắt đầu nghĩ rằng bạn muốn một GROUP BY được bản địa hóa, bạn nên bắt đầu nghĩ về chức năng cửa sổ thay vào đó.
Tôi nghĩ bạn đang theo đuổi một cái gì đó như thế này:
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
Bạn có thể muốn thêm một cái gì đó vào ORDER BY để phá vỡ mối quan hệ một cách nhất quán nhưng điều đó sẽ không làm thay đổi kỹ thuật tổng thể.