ランク付けの結果が mysql クエリになる場合、同点をどのように処理しますか? この例では、テーブル名と列を簡略化しましたが、問題を説明する必要があります。
SET @rank=0;
SELECT student_names.students,
@rank := @rank +1 AS rank,
scores.grades
FROM student_names
LEFT JOIN scores ON student_names.students = scores.students
ORDER BY scores.grades DESC
したがって、上記のクエリが生成するものを想像してください。
Students Rank Grades
=======================
Al 1 90
Amy 2 90
George 3 78
Bob 4 73
Mary 5 NULL
William 6 NULL
アルとエイミーは同じ学年なのに、どちらかが上位。エイミーはだまされた。どうすればエイミーとアルのランクが同じになり、どちらもランクが 1 になるようにできますか。また、ウィリアムとメアリーはテストを受けませんでした。彼らはクラスを袋詰めし、男の子の部屋で喫煙していました. 彼らは最後の場所で結ばれるべきです。
正しいランキングは次のとおりです。
Students Rank Grades
========================
Al 1 90
Amy 1 90
George 2 78
Bob 3 73
Mary 4 NULL
William 4 NULL
誰かアドバイスがあれば教えてください。