Re: [SQL] Most recent row
От | David G. Johnston |
---|---|
Тема | Re: [SQL] Most recent row |
Дата | |
Msg-id | CAKFQuwb5ap3=_VvWOAnYG6E4aChk3jQTztube+UW=Kk29V01fQ@mail.gmail.com обсуждение исходный текст |
Ответ на | [SQL] Most recent row (Gary Stainburn <gary.stainburn@ringways.co.uk>) |
Ответы |
Re: [SQL] Most recent row
Re: [SQL] Most recent row |
Список | pgsql-sql |
This question has been asked a few times, and Google returns a few different
answers, but I am interested people's opinions and suggestions for the *best*
wat to retrieve the most recent row from a table.
My case is:
create table people (
p_id serial primary key,
......
);
create table assessments (
p_id int4 not null references people(p_id),
as_timestamp timestamp not null,
......
);
select p.*, (most recent) a.*
from people p, assessments a
..
;
I would start with something using DISTINCT ON and avoid redundant data. If performance starts to suck I would then probably add a field to people where you can record the most recent assessment id and which you would change via a trigger on assessments.
(not tested)
SELECT DISTINCT ON (p) p, a
FROM people p
LEFT JOIN assessments a USING (p_id)
ORDER BY p, a.as_timestamp DESC;
David J.
В списке pgsql-sql по дате отправления: