Subtraindo uma linha de dados de outra no SQL
Fui enganado com algum SQL, onde tenho várias linhas de dados e quero subtrair uma linha da linha anterior e repeti-la até o fim.
Então aqui está a tabela:
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)
Eu quero que os resultados mostrem uma terceira coluna chamada diferença, que é uma linha subtraindo da linha abaixo com a linha final subtraindo de zer
+------+------------------------+ | id |length | difference | +------+------------------------+ | 1 | 1090 | 202 | | 2 | 888 | 343 | | 3 | 545 | 111 | | 4 | 434 | 389 | | 5 | 45 | 45 |
Eu tentei uma auto-junção, mas não sei exatamente como limitar os resultados, em vez de fazê-lo circular por si mesmo. Não posso depender que o valor do ID seja seqüencial para um determinado conjunto de resultados, então não estou usando esse valor. Eu poderia estender o esquema para incluir algum tipo de valor sequencia
Isto é o que eu tentei:
SELECT id, f.length, f2.length, (f.length - f2.length) AS difference FROM foo f, foo f2
Obrigado pela assistência.