У меня есть запрос на 2 таблицы (часть, цена). Упрощенная версия этого запроса:Выбор записей из подзапроса найденных set (postgres)
SELECT price.*
FROM price
INNER JOIN parts ON (price.code = part.code)
WHERE price.type = '01'
ORDER BY date DESC
Это возвращает несколько записей:
code | type | date | price | file
-------------+----------+------------------------------------------------------
00065064705 | 01 | 2008-01-07 00:00:00 | 16.400000 | 28SEP2011.zip
00065064705 | 01 | 2007-02-05 00:00:00 | 15.200000 | 20JUL2011.zip
54868278900 | 01 | 2006-02-24 00:00:00 | 16.642000 | 28SEP2011.zip
Как вы можете видеть, есть код 00065064705
в списке дважды. Мне просто нужна запись maxdate (2008-01-07) вместе с кодом, типом, датой и ценой для каждого уникального кода. Таким образом, основная запись для каждого уникального кода. Это postgres, поэтому я не могу использовать SELECT TOP или что-то в этом роде.
Я думаю, что я должен использовать это как подзапрос внутри основного запроса, но я не уверен, как это сделать. что-то вроде
SELECT *
FROM price
JOIN (insert my original query here) AS price2 ON price.code = price2.code
Любая помощь была бы принята с благодарностью.
Я не проверить это пока я не был знаком с оконными функциями ... теперь, когда я читаю о них это дует мой разум. Отличный материал и большое спасибо за то, что нашли время, чтобы помочь :) – DrChubby