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)
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)
- Añadir soporte para funciones de 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";