良い結果を推測してポイントを獲得できるシステムがあります。最も多くのポイントを獲得したときは、ナンバー 1 になる必要があります。問題は、ポイントが最も多い人がナンバー 1 になり、次の人がナンバー 2 になるように、どのようにランク付けできるかということです。
例:
IDポイントランク ------------------------- 1 | 1000 | 1 2 | 900 | 2 3 | 500 | 5 4 | 700 | 4 5 | 800 | 3
ありがとう!
2 つのテーブルを持つデータベースがあるとします。最初のテーブルにはユーザーが一覧表示され、2 番目のテーブルには質問によって獲得したポイントが一覧表示されます (質問は重要ではない 3 番目のテーブルから取得されますが、以下に示します)。
User
=====
Id
Name
(...)
Question
=====
Id
(...)
Answer
=====
UserId
QuestionId
PointsTaken
そこからランク付けするには、単純な SQL ステートメントを実行できます。
SELECT usr.Id, usr.Name, SUM(ans.PointsTaken)
FROM User usr
JOIN Answer ans ON ans.UserId = usr.Id
GROUP BY usr.Id, usr.Name
ORDER BY SUM(ans.PointsTaken) DESC
このように、あなたのランクは完了です。結果は、人物 ID、人物名、獲得したポイントの合計で、最大から最小の順に並べられます。これの次に、情報を表示するだけです。