2

これが私のテーブルの例です:

column_example
10
20
25
50


これが私が望むものです:

column_example2
10
5
25


これは簡単な質問だと思いますが、 SQLite Syntax の Web ページや Google で答えを見つけることができませんでした。

編集: 明確にするために、コードは次の出力を返す可能性があります: 20-10 25-20 50-25

4

1 に答える 1

7

この解決策は遅いかもしれませんが、私は成功するものの間の潜在的なギャップを考慮しなければなりませんでしたrowid

http://sqlfiddle.com/#!5/daeed/1

SELECT
  (SELECT x
   FROM t AS t3
   WHERE t3.rowid =
     (SELECT MIN(tt.rowid)
      FROM t AS tt
      WHERE tt.rowid > t.rowid
     )
  )
  - x

FROM t
WHERE diff IS NOT NULL

の間にギャップがないことが保証されている場合はrowid、次のより単純なクエリを使用できます。

http://sqlfiddle.com/#!5/1f906/3

SELECT t_next.x - t.x
FROM       t
INNER JOIN t AS t_next
        ON t_next.rowid = t.rowid + 1
于 2012-07-16T13:55:18.547 に答える