Tengo una tabla SQLite que contiene los precios de varios productos. Es una tabla de instantáneas, por lo que contiene los precios en intervalos de 5 minutos. Me gustaría escribir una consulta que devuelva la diferencia de precio de una fila a la siguiente en cada artículo.Encontrar la diferencia en filas en la consulta usando SQLite
Las columnas son id (inc automático), record_id (Identificación del producto), el precio (precio en ese punto en el tiempo), el tiempo (sólo unos segundos desde el periodo)
Estoy intentando devolver un ' columna 'diferencia' que contiene un valor de diferencia entre intervalos.
Given the following id record_id price time 1 apple001 36.00 ... 67 apple001 37.87 ... 765 apple001 45.82 ... 892 apple001 26.76 ... I'd like it to return id record_id price time difference 1 apple001 36.00 ... 0 67 apple001 37.87 ... 1.87 765 apple001 45.82 ... 7.95 892 apple001 26.76 ... -19.06
¿Es posible con SQLite?
En segundo lugar, ¿debería ser posible? ¿Hay alguna forma de limitarlo a los últimos 5 registros?
Agradecería cualquier ayuda, gracias.
Solo quería agregar algunas cosas. He encontrado formas de hacerlo en otras bases de datos, pero estoy usando XULRunner, por lo tanto, SQLite. Por eso estoy trabajando con eso.
La segunda pregunta puede necesitar aclaración, estoy buscando para ordenar por el momento y tomar y analizar los últimos 5 registros. Es un problema que puedo abordar por separado si es necesario.
Aquí hay un MySQL solution, tipo de. Es el enfoque hacia el que me estoy dirigiendo, pero el factor decisivo es "Si la tabla contiene una columna de secuencia pero hay espacios vacíos, vuelva a numerarla. Si la tabla no contiene dicha columna, agregue una". Por diseño, este escenario tiene vacíos, ya que hay muchos registros actualizados a la vez y no estarán en orden.
SQLite utiliza [ifnull] (http://www.sqlite.org/lang_corefunc.html#ifnull) –
¿Es mejor tener las uniones o no tener las uniones, y por qué? – EngrStudent