各生徒の成績に応じて、各生徒のランクを計算したいと思います。しかし、マークが -ve 値にある場合、クエリは適切な回答を表示しません。
SELECT a1.ResultByTestId, a1.ObtainedMarks, COUNT(a2.ObtainedMarks) Rank
FROM ResultByTest a1, ResultByTest a2
WHERE a1.ObtainedMarks < a2.ObtainedMarks
or
(a1.ObtainedMarks=a2.ObtainedMarks and a1.StudentId = a2.StudentId)
GROUP BY a1.ObtainedMarks, a1.ResultByTestId
ORDER BY a1.ObtainedMarks DESC, Rank DESC
答えの表は次のとおりです:-
resutlByTestId ObtainedMarks Rank
11 36 1
10 22 2
3 9 3
9 7 4
6 5 5
8 3 6
7 2 7
4 0 8
5 0 8
1 0 8
2 0 8
13 -5 12
私を助けてくれる人はいますか?