Sono stato confuso con SQL in cui ho ottenuto diverse righe di dati e voglio sottrarre una riga dalla riga precedente e farla ripetere fino in fondo.Sottrarre una riga di dati da un'altra in SQL
Quindi ecco la tabella:
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)
voglio i risultati mostrano una terza colonna denominata differenza che è una riga sottraendo da quello sottostante con l'ultima fila sottraendo da zero.
+------+------------------------+ | id |length | difference | +------+------------------------+ | 1 | 1090 | 202 | | 2 | 888 | 343 | | 3 | 545 | 111 | | 4 | 434 | 389 | | 5 | 45 | 45 |
Ho provato un self join, ma io non sono esattamente sicuro di come limitare i risultati invece di avere il ciclo attraverso se stesso. Non posso dipendere dal fatto che il valore id sarà sequenziale per un dato set di risultati, quindi non sto usando quel valore. Potrei estendere lo schema per includere un qualche tipo di valore sequenziale.
Questo è quello che ho provato:
SELECT id, f.length, f2.length, (f.length - f2.length) AS difference FROM foo f, foo f2
Grazie per l'assist.
Questo è MySQL. Perdonami per non averlo menzionato prima. –