Я столкнулся с некоторым SQL, где у меня есть несколько строк данных, и я хочу вычесть строку из предыдущей строки и повторить ее до конца.
Итак, вот таблица:
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)
Я хочу, чтобы результаты отображали третий столбец, называемый разницей, который является одной строкой, вычитаемой из следующей ниже, с окончательной вычитанием строки с нуля.
+------+------------------------+ | id |length | difference | +------+------------------------+ | 1 | 1090 | 202 | | 2 | 888 | 343 | | 3 | 545 | 111 | | 4 | 434 | 389 | | 5 | 45 | 45 |
Я пробовал присоединиться к себе, но я не совсем уверен, как ограничить результаты, а не прокручивать сам. Я не могу зависеть от того, что значение id будет последовательным для заданного набора результатов, поэтому я не использую это значение. Я мог бы расширить схему, чтобы включить какое-то последовательное значение.
Вот что я пробовал:
SELECT id, f.length, f2.length, (f.length - f2.length) AS difference FROM foo f, foo f2
Спасибо за помощь.