我有一个查询在 MySQL 中对结果进行排名:
SET @rank := 0;
SELECT Name, Score, @rank := @rank + 1
FROM Results
ORDER BY Score
在我尝试将排名基于平均分数之前,这很好用:
SET @rank := 0;
SELECT Name, AVG(Score) as AvScore, @rank := @rank + 1
FROM Results
ORDER BY AvScore
如果我运行它,由于 AVG,我只会得到一条记录。但是,如果我在 Name 上添加一个 GROUP BY 以便我可以列出每个人的平均值,这会影响正确的排名。
我知道答案可能正盯着我看,但我不太明白。如何根据平均结果为每个名称输出排名?