いくつかの行のデータがあるSQLに困惑していて、前の行から1行を減算して、最後まで繰り返してもらいたいと思っています。
だからここに表があります:
CREATE TABLE foo( id、 長さ )。
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)
結果に、差分と呼ばれる3番目の列を表示します。これは、下の行から1行を減算し、最後の行をゼロから減算するものです。
+ ------ + ------------------------ + | id|長さ| 違い| + ------ + ------------------------ + | 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の違い FROM foo f、foo f2
助けてくれてありがとう。