Me he quedado perplejo con algunos SQL donde tengo varias filas de datos, y quiero restar una fila de la fila anterior y repetirla hasta el final.Restando una fila de datos de otra en SQL
Así que aquí es la tabla:
CREATE TABLE foo ( id, length )
INSERT INTO foo (id,length) VALUES(1,1090) INSERT INTO foo (id,length) VALUES(2,888) INSERT INTO foo (id,length) VALUES(3,545) INSERT INTO foo (id,length) VALUES(4,434) INSERT INTO foo (id,length) VALUES(5,45)
que desea que los resultados muestran una tercera columna llamada diferencia que es una fila restando de la de abajo con la última fila restar de cero.
+------+------------------------+ | id |length | difference | +------+------------------------+ | 1 | 1090 | 202 | | 2 | 888 | 343 | | 3 | 545 | 111 | | 4 | 434 | 389 | | 5 | 45 | 45 |
He intentado un auto se unen pero no estoy muy seguro de cómo limitar los resultados en lugar de tener que desplazarse por sí mismo. No puedo depender de que el valor de identificación sea secuencial para un conjunto de resultados dado, así que no estoy usando ese valor. Podría extender el esquema para incluir algún tipo de valor secuencial.
Esto es lo que he intentado:
SELECT id, f.length, f2.length, (f.length - f2.length) AS difference FROM foo f, foo f2
Gracias por la asistencia.
Esto es MySQL. Perdóname por no haber mencionado antes. –