我有一个系统,你可以通过猜测好结果来赚取积分。当你获得最高分时,你必须是数字1.问题是我如何能够获得排名,这样得分最高的人将是1号,下一个人将是2号等等。
示例:
ID Points Rank ------------------------- 1 | 1000 | 1 2 | 900 | 2 3 | 500 | 5 4 | 700 | 4 5 | 800 | 3
谢谢!
答案 0 :(得分:0)
让我们假设您有一个包含两个表的数据库:第一个列出用户,第二个列出了问题所获得的点数(问题来自第三个表,虽然我将在下面显示但不重要)。
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,人名和从最大到最小排序的总点数。在此旁边,您只需要显示信息。