ウィンドウ関数でできないかなと思って試行錯誤しているうちに、サブクエリーの解法が出ていた。実際はデータベースの規模とか、1行目からの連続以外にも取得する必要があったりするだろうから、開始行のデータをまず取得して、同じデータかどうかの条件で絞り込んだ方が良いのかなと思ったりした。コストに合わせてdataにもインデックスいるだろうし、うーん。 もっと見る
[ ]で括った部分が、先に取得したひとまとまりとなる最初の行のデータSELECT id, dataFROM (SELECT ROW_NUMBER() OVER (ORDER BY id) - 1 + [id] AS rownum, id, dataFROM t_testWHERE id >= [id]AND data = [data]ORDER BY id) aWHERE rownum = id
蛇足で、区間ごとにIDを求めるやつとか。 https://gyazo.com/05631983ad8089e51f04284fc7876db9
思考の /dev/null