sqlite sqlite3 android-sqlite row-number

Cómo usar ROW_NUMBER en sqlite



sqlite3 android-sqlite (4)

Aquí está mi consulta dada a continuación.

select * from data where value = "yes";

Mi id es el incremento automático y debajo hay un resultado de la consulta dada.

id || value 1 || yes 3 || yes 4 || yes 6 || yes 9 || yes

¿Cómo usar ROW_NUMBER en sqlite? Para que pueda obtener el resultado que se da a continuación.

NoId || value 1 || yes 2 || yes 3 || yes 4 || yes 5 || yes

ROW_NUMBER AS NOId.


ACTUALIZACIÓN: sqlite3 versión 3.25 ahora admite funciones de ventana que incluyen:

row_number () over (ordenar por id)

Documentación SQLITE3


Me curé un poco con fiddleanswer y obtuve exactamente el resultado como se esperaba

select id, value , (select count(*) from data b where a.id >= b.id and b.value=''yes'') as cnt from data a where a.value=''yes''; result 1|yes|1 3|yes|2 4|yes|3 6|yes|4 9|yes|5


Prueba esta consulta

select id, value, (select count(*) from tbl b where a.id >= b.id) as cnt from tbl a

FIDDLE

| id | value | cnt | -------------------- | 1 | yes | 1 | | 3 | yes | 2 | | 4 | yes | 3 | | 6 | yes | 4 | | 9 | yes | 5 |


SQLite Release 3.25.0 agregará soporte para funciones de ventana

2018-09-00 (3.25.0)

  1. Añadir soporte para funciones de ventana

Funciones de la ventana :

Una función de ventana es una función SQL especial donde los valores de entrada se toman de una "ventana" de una o más filas en el conjunto de resultados de una instrucción SELECT.

SQLite es compatible con las siguientes 11 funciones de ventana integradas:

numero de fila()

El número de la fila dentro de la partición actual. Las filas se numeran a partir de 1 en el orden definido por la cláusula ORDER BY en la definición de la ventana, o en orden arbitrario de lo contrario.

Entonces tu consulta podría ser reescrita como:

select *, ROW_NUMBER() OVER(ORDER BY Id) AS NoId from data where value = "yes";