Tengo una tabla en PostgreSQL, ejecuto una consulta sobre ella con varias condiciones que devuelve varias filas ordenadas por una de las columnas. En general es:¿Cómo obtener el primer y último registro de una consulta sql?
SELECT <some columns>
FROM mytable
<maybe some joins here>
WHERE <various conditions>
ORDER BY date DESC
Ahora sólo estoy interesado en conseguir la primera y la última fila de la consulta. Podría obtenerlos fuera del DB, dentro de mi aplicación (y esto es lo que realmente hago) pero me preguntaba si para un mejor rendimiento no debería obtener de la base de datos solo esos 2 registros que realmente me interesan.
Y si es así, ¿cómo modifico mi consulta?
Utilice las funciones agregadas MIN & MAX: http://www.postgresql.org/docs/8.2/static/tutorial-agg.html –
@rexem: min & max no funcionará en varias columnas, y funcionarán en una sola columna solo si está ordenando por esta columna. –
Es posible que también desee ver 'SELECT DISTINCT ON (...) ... ORDER BY ...'. Ver [documentación de PostgreSQL] (https://www.postgresql.org/docs/current/static/sql-select.html). – RhinoDevel