諸事情でWindow関数を触る機会があって、ちょっと前にyokuさんに教えてもらったWindow関数ネタを思い出したので1つ。
Oracle11gにはMySQLでおなじみ?のLIMIT,OFFSETがない。
そこで(いろいろやり方はあるけど)window関数を使ってあらわしたりする。
例えば id(number), value(varchar2) のテーブルならこんな感じ。
SELECT * FROM
(
SELECT row_number() over order by id asc) as row_number,
value
FROM t1
) a
WHERE a.row_number between 500 and 600;
MySQL8からwindow関数が追加され、row_number()とかもつかえるのでこのクエリをそのままMySQLで使えるか検討してみる。 …
[さらに読む]