Eu tenho alguns dados de dois objetos e quero recuperar a última linha de ambos os objetos, de preferência em uma consulta.
Estrutura da tabela:
CREATE TABLE data
(
pid serial NOT NULL,
dt timestamp without time zone,
object_id integer,
info_1 numeric(10,8),
speed numeric,
CONSTRAINT dat_pid PRIMARY KEY (pid)
)
Dados de amostra:
1, 2014-04-29 12:02:56, 8, ....
2, 2014-04-29 12:02:10, 8, ....
3, 2014-04-29 12:01:02, 8, ....
5, 2014-04-29 12:01:32, 6, ....
.....
Eu quero uma linha por ID de objeto exclusivo, cada linha sendo a mais recente disponível. Eu tentei conseguir usando esta consulta, mas ela quer que o pid esteja na cláusula group by. Mas não quero agrupar pelo PID e sim pelo id do rastreador....
SELECT *
FROM data
GROUP BY object_id
Você pode usar
DISTINCT ON
para este tipo de consultas: