una - select sqlite android studio
Diferencia de tiempo entre las filas de resultado de la consulta en SQLite: ¿Cómo? (1)
Considere los siguientes contenidos de la tabla de reviews
:
CustomerName ReviewDT
Doe,John 2011-06-20 10:13:24
Doe,John 2011-06-20 10:54:45
Doe,John 2011-06-20 11:36:34
Doe,Janie 2011-06-20 05:15:12
Los resultados son ordenados por ReviewDT
y agrupados por CustomerName
, tales como:
SELECT
CustomerName,
ReviewDT
FROM
Reviews
WHERE
CustomerName NOT NULL
ORDER BY CustomerName ASC, ReviewDT ASC;
Me gustaría crear una columna de la diferencia de tiempo entre cada fila de esta consulta para cada Cliente ... rowid da la fila original, y no hay ningún patrón para la inclusión del rowid, etc ...
Para la primera entrada de un CustomerName, el valor sería 0. Pregunto aquí en caso de que esto sea algo que pueda calcularse como parte de la consulta original de alguna manera. Si no, estaba planeando hacer esto mediante una serie de consultas, creando inicialmente una nueva TABLA seleccionando los resultados de la consulta anterior, luego ALTERANDO para agregar la nueva columna y usando UPDATE / strftime para obtener las diferencias de tiempo usando rowid-1 (de algun modo)...
Para calcular los segundos transcurridos desde una fila de ReviewDT
a la siguiente:
SELECT q.CustomerName, q.ReviewDT,
strftime(''%s'',q.ReviewDT)
- strftime(''%s'',coalesce((select r.ReviewDT from Reviews as r
where r.CustomerName = q.CustomerName
and r.ReviewDT < q.ReviewDT
order by r.ReviewDT DESC limit 1),
q.ReviewDT))
FROM Reviews as q WHERE q.CustomerName NOT NULL
ORDER BY q.CustomerName ASC, q.ReviewDT ASC;
Para obtener el DT de cada ReviewDT
y su fila CustomerName
anterior:
SELECT q.CustomerName, q.ReviewDT,
coalesce((select r.ReviewDT from Reviews as r
where r.CustomerName = q.CustomerName
and r.ReviewDT < q.ReviewDT
order by r.ReviewDT DESC limit 1),
q.ReviewDT)
FROM Reviews as q WHERE q.CustomerName NOT NULL
ORDER BY q.CustomerName ASC, q.ReviewDT ASC;