Re: selecting latest record

From: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: selecting latest record
Date: 2009-09-22 10:08:46
Message-ID: 20090922100846.GD5415@a-kretschmer.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

In response to Louis-David Mitterrand :
> Hi,
>
> I have a simple table
>
> price(id_product, price, date)
>
> which records price changes for each id_product. Each time a price
> changes a new tuple is created.
>
> What is the best way to select only the latest price of each id_product?

There are several ways to do that, for instance with DISTINCT ON (only
postgresql):

test=*# select * from price ;
id_product | price | datum
------------+-------+------------
1 | 10 | 2009-09-01
1 | 12 | 2009-09-10
2 | 11 | 2009-09-10
2 | 8 | 2009-09-13
(4 rows)

test=*# select distinct on (id_product) id_product, price from price order by id_product, datum desc;
id_product | price
------------+-------
1 | 12
2 | 8
(2 rows)

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Rob Sargent 2009-09-22 14:09:26 Re: selecting latest record
Previous Message Louis-David Mitterrand 2009-09-22 10:02:32 Re: selecting latest record