以前に計算したポイントで生徒をランク付けしようとしていますが、問題は、生徒が同じポイントを持っている場合、両方が同じランクになる必要があることです。
生徒 1 は満点 生徒 2 は満点
どちらもランク 1 である必要があります。
私がやろうとしているクエリは(選択のためだけに、列に値を挿入できます)
SELECT a.points
count(b.points)+1 as rank
FROM examresults a left join examresults b on a.points>b.points
group by a.points;
より明確にするために編集します。
- 学生 1点 80
- 学生 2点 77.5
- 学生 3点 77.5
- 学生 4点 77
彼らのランクは次のようになるはずです
- 生徒 1 ランク 1
- 学生 2 ランク 2
- 学生 3 ランク 2
- 学生 4 ランク 3
私の現在のクエリは次のような値を返します
3位が抜けているので。(2 位には 2 つの値があるため)