オープンソースデータベースを加速する「キムラデービー」のブログです。カレー日記を兼ねてます。なお著者は2010-06-01より日本オラクルに在籍していますが、本サイト(ブログ、またはウェブサイト)において示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。 前回と同様にユーザ変数を使って、rank()を実装してみます。基本的な考え方は前回と同じですが、各行をシーケンシャルにカウントするための変数@rownumを用意し、(@preval = sal)が等しくなければ@rownumを返すようにします。各行を値を返さずに@rownumをカウントアップするために、IF()の条件のところに、(@rownum := @rownum + 1)を置いています。これは、必ずTRUEになるため、カウントアップする処理をするだけです。 [2008-12-24 追記] 比