Re: SQL Question
От | Alex |
---|---|
Тема | Re: SQL Question |
Дата | |
Msg-id | 42625C61.70303@meerkatsoft.com обсуждение исходный текст |
Ответ на | Re: SQL Question ("Julian Scarfe" <julian@avbrief.com>) |
Список | pgsql-general |
Julian Scarfe wrote: > From: "Alex" <alex@meerkatsoft.com> > >> - How can i select only the newest record for each ProdId ? >> >> 100 | 2005-04-01 >> 200 | 2005-04-01 >> > > DISTINCT ON was made for this and on the similar tables I have > performs rather more efficiently than using a subquery. > > select distinct on (ProdId) ProdId , LastUpdate > from produpdate > order by ProdId , LastUpdate desc; > >> - How can i select to retrieve the last 2 dates in record >> >> 100 | 2005-04-01 | 2005-03-01 >> 200 | 2005-04-01 | 2005-03-01 > > > To get the previous one, my first thought is something like: > > select distinct on (ProdId) ProdId , LastUpdate > from produpdate p1 > where LastUpdate <> ( > select max(LastUpdate ) from produpdate p2 where p2.ProdId = p1.ProdId > ) > order by ProdId , LastUpdate desc ; > > but there may be a much more efficient way of getting the nth result > in general. > > Julian Scarfe > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly > > Thanks for the help. will give it a try. Alex
В списке pgsql-general по дате отправления: