我一直忍受着一些SQL,其中有幾行數據,並且我想從上一行中減去一行並將其重複一遍。在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
謝謝你的幫助。
這是MySQL。原諒我以前不提。 – 2009-05-28 04:32:27