Re: getting most recent row efficiently

Поиск
Список
Период
Сортировка
От Masaru Sugawara
Тема Re: getting most recent row efficiently
Дата
Msg-id 20011223143038.6783.RK73@echna.ne.jp
обсуждение исходный текст
Ответ на Re: getting most recent row efficiently  (Masaru Sugawara <rk73@echna.ne.jp>)
Список pgsql-general
On Sun, 23 Dec 2001 01:26:07 +0900
I wrote <rk73@echna.ne.jp>:


> > Is there any way to retrieve "the most recent row for each distinct
> > person_id?" without making a timestamp column for when the row was
> > inserted and then grouping them by person_id?

 snip

> create sequence seq_doctor1;
> create sequence seq_doctor2;
>
> select setval('seq_doctor1',1), setval('seq_doctor2',1);
> select t1.person_id, t1.favorite_color
>   from (select person_id, favorite_color, nextval('seq_doctor1')-1 as n
>           from doctor
>          order by person_id
>        ) as t1 inner join
>        (select person_id, max(nextval('seq_doctor2')-1) as rank
>           from doctor
>          group by person_id
>        ) as t2 on (t1.n = t2.rank)
> ;


  There also seems to be another way:

  select t1.person_id, t1.favorite_color
    from (select person_id, favorite_color, oid as n
              from doctor
            ) as t1 inner join
           (select person_id, max(oid) as rank
              from doctor
             group by person_id
           ) as t2 on (t1.n = t2.rank)
;

 person_id | favorite_color
-----------+----------------
         1 | blue
         2 | green
         3 | purple
(3 rows)

Regards,
Masaru Sugawara


В списке pgsql-general по дате отправления:

Предыдущее
От: Thomas Lockhart
Дата:
Сообщение: Re: default modifiers for 7.2b4
Следующее
От: Marius Žalinauskas
Дата:
Сообщение: Re: Migrate Store Procedure Sybase to PostgreSQL