Здравствуйте, MASReady, Вы писали:
MAS>ПАМАГИТЕ к ночи башка не варит совсем
MAS>ID — уникальный ключ
MAS>PLACE_ID — код места (может повторяться)
MAS>DOC_DATE — дата документа (может повторяться)
MAS>ТАБЛИЦА
MAS>ID PLACE_ID DOC_DATE
MAS>1 1 01.12.1990
MAS>2 1 03.02.1985
MAS>3 1 11.10.1980
MAS>4 2 07.12.1982
MAS>5 2 01.03.1980
MAS>6 2 09.07.1978
MAS>...
MAS>нужно выбрать все первые записи (не потеряв ID) для каждого PLACE_ID
MAS>Вобщем нужен ID записи с максимальной датой (только один) по каждому населенному пункту
MAS>таблица отсортирована ORDER BY PLACE_ID ASC, DOC_DATE DESC,
MAS>поэтому можно просто взять первые по каждому PLACE_ID, вопрос в том как это сделать????
СУБД-то какая?
В чистом SQL выглядит так:
select id,place_id,doc_date
from my_table t
where
t.doc_date = (select max(t1.doc_date) from my_table t1 where t1.place_id = t.place_id)
В Oracleможно обойтись без подзапроса, используя аналитическую функцию FIRST.