четвер, 29 вересня 2011 р.

PostgreSQL Як вибрати запис з максимальною датою?

Як вибрати останню ціну по складу? Можна двома способами

1.  SELECT id, id_product, data, price FROM r a WHERE data = (SELECT max(data) FROM r b WHERE
b.id = a.id AND b.id_product = a.id_product)

або

SELECT id, id_product, data, price FROM r a WHERE data in (SELECT max(data) FROM r b WHERE
b.id = a.id AND b.id_product = a.id_product)


2. SELECT DISTINCT ON (id, id_product)   id, id_product, data, price FROM r
 ORDER BY id, id_product,  data DESC

Цікаво як це реалізувати на Oracle? Перший варіант напевно універсальний для любої бази даних, треба перевірити чи другий варіант працює на Oracle. 

Немає коментарів:

Дописати коментар