すべてのゲーム プレイヤーの最高スコアを格納するテーブルがあります。
select * from TMP_TABLE
その結果:
USERID SCORE
---------- -----------
aaa 10
bbb 30
ccc 50
ddd 90
eee 80
fff 50
ggg 20
hhh 40
iii 50
(9 row(s) affected)
それでは、すべてのプレイヤーのランクを表示したいと思います:
select *,r=rank() over(order by score desc) from TMP_TABLE
その結果
USERID SCORE r
---------- ----------- --------------------
ddd 90 1
eee 80 2
fff 50 3
ccc 50 3
iii 50 3
hhh 40 6
bbb 30 7
ggg 20 8
aaa 10 9
(9 row(s) affected)
ここで、ユーザー 'bbb' のランクと彼 (彼女) の近隣のプレイヤーの名前とスコアを次のように出力したいと思います。
USERID SCORE r
---------- ----------- --------------------
hhh 40 6
bbb 30 7
ggg 20 8
(3 row(s) affected)
ただし、どのクエリステートメントがこの結果を示しているかわかりません。もちろん、処理性能も考慮する必要があります。私を助けてください。ありがとうございました。