我正在建立一个“前 3 名”排行榜。我想显示前三名的分数,绘制每人的最大值,但我不想限制 3,因为我想显示任何拥有前 3 名分数的人。因此,例如,使用下面的数据,
+----+-----+
|Name|Score|
+----+-----+
|Matt| 17|
|Mark| 29|
|Luke| 28|
|John| 29|
|Paul| 27|
|Matt| 29|
|Mark| 22|
+----+-----+
我想显示:
+------+-----+
|Name |Score|
+------+-----+
|1.Matt| 30|
|2.Mark| 29|
|2.John| 29|
|3.Luke| 28|
+------+-----+
我的第一个想法是为每个人提取最大值,然后在分数更改后停止显示(使用 PHP)。
select name, max(score)
from SCORES
group by name
order by name
有没有办法直接在 SQL 中执行此操作?