У меня есть простая таблица с oid unit_id, временной меткой времени, байтом diag. Первичный ключ - это комбинация времени и 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