質問: MySQLを使ってSQLを利用しています。 質問の内容として結論から言うと、 **本日見たコードが何をしていたのか知りたい**のです。 正確には覚えていないのですが、 ``` ... SELECT count(*)+1 FROM hoge hoge WHERE hoge.id > subHoge.id ... from hoge subHoge GROUP BY .. ) MainHoge ``` といったような感じでした。 OracleではできるけどMySQLではできないため、 このようなことをして行番号を付与する? のような内容だった気もするのですが、正確にわかりませんでした。 countで全レコードを取得して、 where句でhoge.idとsubHoge.idを比べて 番号を付与する? サブクラスで定義したMainHogeからそのTOP3のレコードの値を表示する? すごくうろおぼえで断片的であいまいな記憶しかありません。 このようなロジックを知っている方はいらっしゃるでしょうか? もしこうじゃないかといった推測で構わないので引っかかることがあれば教えていただければと思います。よろしくお願いします。
回答: 見た感じ、なにかのランク付けじゃないですか? id順に連番をつけているとか? sample ======= ``` create table tbl(id int not null unique,val int); insert into tbl values(5,1),(7,2),(3,3),(1,4),(8,5); ``` ``` select (select count(*)+1 from tbl as t2 where t2.id