2015-10-30 現在、少なくとも Cygwin 上の SQLite 3.8.11.1 2015-07-29 20:00:57 cf538e2783e468bbc25e7cb2a9ee64d3e0e80b2f で確認する限り、over句には非対応な模様。
例えば
参考:
SELECT id, value, sum(value) OVER (ODER BY id) FROM tbl ORDER BY id;のように、value の列について現在の行までの積算値を計算するという目的であれば以下の様なサブクエリを用いれば同等の結果を得る事が出来る。
SELECT id, value, (SELECT sum(value) FROM tbl child WHERE child.id <= parent.id) AS sum FROM tbl parent ORDER BY id;ただし、計算量的には前者がO(N)に対して後者はO(N^2)のような気がする。何か良い方法はないものだろうか?
参考:
- stackoverflow / 2013-05-30: How to use ROW_NUMBER in sqlite
- HHeLiBeXの日記 正道編 / 2011-08-01: 指定した範囲の行を取得するクエリ
- Yahoo!知恵袋 / 2013-02-28: 積算値(?)を算出するSQL
タグ
コメントをかく