У меня есть простая таблица с идентификатором unit_id, временной меткой времени, diag bytea. Первичный ключ - это комбинация времени и unit_id.
Идея этого запроса состоит в том, чтобы получить последнюю строку (наибольшую временную метку) для каждого уникального unit_id. Однако строки для каждого unit_id с последним временем не всегда возвращаются.
Я действительно хочу группировать только unit_id, но postgres заставляет меня использовать diag также, так как я выбираю это.
SELECT DISTINCT ON(unit_id) max(time) as time, diag, unit_id
FROM diagnostics.unit_diag_history
GROUP BY unit_id, diag