query: last N price for each product?

From: "David Garamond" <davidgaramond(at)gmail(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: query: last N price for each product?
Date: 2008-07-04 12:35:57
Message-ID: 7c33d060807040535y63d7cd1foeed539876eb7c7f8@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Dear SQL masters,

The query for "latest price for each product" goes like this (which I
can grasp quite easily):

SELECT * FROM price p1
WHERE ctime=(SELECT MAX(ctime) FROM price p2 WHERE p1.product_id=p2.product_id)

or:

SELECT * FROM price p1
WHERE NOT EXISTS (SELECT * FROM price p2 WHERE
p1.product_id=p2.product_id AND p1.ctime < p2.ctime)

but how do yo query for "latest 3 prices for each product"? The
"price" table contains current price as well as price histories.

Regards,
dave

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Claus Guttesen 2008-07-04 12:44:22 Re: query: last N price for each product?
Previous Message Peter Eisentraut 2008-07-03 13:15:39 Re: nesting XmlAgg