У меня есть таблица в PostgreSQL, я запускаю запрос на нее с несколькими условиями, которые возвращают несколько строк, упорядоченных одним из столбцов. В целом это:Как получить первую и последнюю запись из SQL-запроса?
SELECT <some columns>
FROM mytable
<maybe some joins here>
WHERE <various conditions>
ORDER BY date DESC
Теперь меня интересует только получение первой и последней строки из этого запроса. Я мог бы получить их за пределами db, внутри моего приложения (и это то, что я на самом деле делаю), но задавался вопросом, не следует ли из лучшей базы данных получить из базы данных только те 2 записи, которые мне действительно интересны.
И если да, то как мне изменить свой запрос?
Использование агрегатных функций MIN & MAX: http://www.postgresql.org/docs/8.2/static/tutorial-agg.html –
@rexem: min & max не будет работать на нескольких столбцах - и они будут работать на одном столбце, только если вы заказываете этот столбец. – 2009-09-28 04:57:32
Вы также можете взглянуть на 'SELECT DISTINCT ON (...) ... ORDER BY ...'. См. [Документация по PostgreSQL] (https://www.postgresql.org/docs/current/static/sql-select.html). – RhinoDevel