Предположим, что есть 3 строки в таблице PostgreSQL с именем tracker
. Я хочу получить последнюю обновленную запись. Пожалуйста, помогите мне достичь этого.Запрос максимальной отметки времени из PostgreSQL DB
(issue_id,priority,ingest_date)
(1,1,"2015-01-27 00:00:00")
(1,2,"2015-01-28 00:00:00")
(1,3,"2015-01-29 00:00:00")
Я попытался дать
select *
from tracker
where ingest_date = (select max(ingest_date) from tracker);
Это прекрасно работает для меня. Но есть ли лучший способ я могу запросить БД?
Заранее спасибо.
Я хочу что-то вроде
select *
from etl_change_fact
where ingest_date = max(ingest_date);
Но я получаю эту ошибку
**ERROR: aggregates not allowed in WHERE clause
**
Если у вас есть индекс на 'ingest_date' ваш первый запрос, вероятно, наиболее эффективный способ сделать это. –
Я согласен с лошадью. Предполагая индекс, подзапрос превратит тот, который большинством других методов будет индексировать или сканировать таблицу в поисках индекса. Очень эффективный. – TommCatt