私はこのテーブルを持っています:
code | Seq | incr | Bin
------------------------
AQ | 2701 | 1 | 1
AQ | 2702 | 2 | 0
AQ | 2703 | 3 | 1
AQ | 2704 | 4 | 1
AQ | 2705 | 5 | 1
AQ | 2706 | 6 | 1
AQ | 2707 | 7 | 1
AQ | 2708 | 8 | 0
AQ | 2709 | 9 | 1
AQ | 2710 | 10 | 1
AQ | 2711 | 11 | 0
AQ | 2712 | 12 | 1
連続する「1」の最大数と、結果の数の「Seq」列の最初と最後の行の値を取得する必要があります。つまり、書かれた単純化されたテーブルの場合、最大カウントは「Seq」= 2703 から始まり「Seq」= 2707 で終わる「5」です。
したがって、次のような結果のテーブルが必要です。
code | SeqStart | SeqEnd | Count
----------------------------------
AQ | 2703 | 2707 | 5
AR | 2712 | 2722 | 11
これを解決しようとして、私はそれを考えました
"incr" - ( "Bin" = 0 で最大 "incr" の行の "incr" 値ですが、< "incr" の場合、3 から 7 までの "incr" の場合は 2、9 から 7 までの "incr" の場合は 8 になります。 10 )
これを行うには良い数学の方法かもしれませんが(ここに書いているので)各行の減算の適切な2番目の数の作業コードを書く方法が見つかりません
残念ながら、私は OpenOffice (3.4.1) を使用しているため、HSQLDB 1.8 で立ち往生しています。