Ho una tabella in PostgreSQL, eseguo una query su di essa con diverse condizioni che restituisce più righe, ordinate da una delle colonne. In generale è:Come ottenere il primo e l'ultimo record da una query sql?
SELECT <some columns>
FROM mytable
<maybe some joins here>
WHERE <various conditions>
ORDER BY date DESC
Ora mi interessa solo ottenere la prima e l'ultima riga da questa query. Potrei trovarli al di fuori del db, all'interno della mia applicazione (e questo è quello che effettivamente faccio) ma mi chiedevo se per prestazioni migliori non dovrei ottenere dal database solo quei 2 record in cui sono effettivamente interessato.
E se sì, come posso modificare la mia query?
Utilizzare le funzioni di aggregazione MIN e MAX: http://www.postgresql.org/docs/8.2/static/tutorial-agg.html –
@rexem: min e max non funzioneranno su più colonne e funzioneranno su singola colonna solo se ordini da questa colonna. –
Si potrebbe anche voler dare un'occhiata a 'SELECT DISTINCT ON (...) ... ORDER BY ...'. Vedi [Documentazione PostgreSQL] (https://www.postgresql.org/docs/current/static/sql-select.html). – RhinoDevel