в которой около 900000 строк. В этой базе 50 колонок. Скажем есть колонки event_time, server, server_name.
У server_name может быть 1800 уникальных записей по event_time, то есть все остальные дублируются, как мне выбрать последнюю запись по event_time для каждого уникального server_name ?
Последний раз этот вопрос поднимался здесь часа четыре назад.
select server_name, max(event_time) from group by server_name?
Это работает, спасибо. А могу ли я выбрать при этом использовать *, что бы вывести все последние строки, записанные для каждого уникального server-name ? select *, max(event_time) from group by server_name
На самом деле поднимался именно вопрос про выборку конкретных строк. Но, в общем, скажу ещё раз: задача называется groupwise maximum, описана она в интэрнете довольно подробно. При этом не то чтобы совсем проста.
select distinct on (prorettype) proname, pg_proc.* from pg_proc order by prorettype, proname, oid; — Такой вариант не является универсальным для postgresql ? — Здесь группировка по prorettype, минимум по proname
Да, это достаточно работающий вариант.
Обсуждают сегодня