La forma más eficiente de seleccionar el primer y último elemento, SQLite?

¿Cuál es la forma más eficiente de seleccionar solo el primer elemento y el último, desde una columna en SQLite?

El primer y último elemento de una fila ?

SELECT column1, columnN FROM mytable; 

Creo que debe entenderse como el primer y último elemento de una columna :

 SELECT MIN(column1) AS First, MAX(column1) AS Last FROM mytable; 

Consulte http://www.sqlite.org/lang_aggfunc.html para MIN() y MAX() .

Estoy usando First y Last como alias de columna.

si es solo una columna:

 SELECT min(column) as first, max(column) as last FROM table 

si quieres seleccionar toda la fila:

 SELECT 'first',* FROM table ORDER BY column DESC LIMIT 1 UNION SELECT 'last',* FROM table ORDER BY column ASC LIMIT 1 

La forma más eficiente sería saber cómo se llamaron esos campos y simplemente seleccionarlos.

 SELECT `first_field`, `last_field` FROM `table`; 

Probablemente así:

 SELECT dbo.Table.FirstCol, dbo.Table.LastCol FROM Table 

Obtiene mejoras menores de eficiencia al especificar el nombre y el esquema de la tabla.

El enfoque min () / max () es incorrecto. Solo es correcto, si los valores son solo ascendentes. Necesitaba algo así como las tasas de cambio, que aumentan y disminuyen aleatoriamente.

Esta es mi solución:

 select st.* from stats_ticker st, ( select min(rowid) as first, max(rowid) as last --here is magic part 1 from stats_ticker -- next line is just a filter I need in my case. -- if you want first/last of the whole table leave it out. where timeutc between datetime('now', '-1 days') and datetime('now') ) firstlast WHERE st.rowid = firstlast.first --and these two rows do magic part 2 OR st.rowid = firstlast.last ORDER BY st.rowid; 

Parte mágica 1: la subselección da como resultado una sola fila con las columnas primero, la última contiene rowid's.

Parte mágica 2 fácil de filtrar en esos dos rowid.

Esta es la mejor solución que he encontrado hasta ahora. Espero que te guste.

Podemos hacerlo con la ayuda de Sql Aggregate function Sql Aggregate , como Max y Min . Estas son las dos funciones agregadas que le ayudan a get el último y el último elemento de la tabla de datos.

 Select max (column_name ), min(column name) from table name 

Max le dará el valor máximo significa último valor y min le dará el valor mínimo significa que le dará el primer valor, de la tabla específica.