我如何编写一个查询来将排名结果排在前25名的排行榜?

时间:2016-08-05 03:36:20

标签: php mysql database

我有一个运动事件的SQL表,列出了这样的结果:

比赛:100米冲刺

姓名:John Smith 地点:1

名称:Gabriel Donaldson 地点:2

名称:Alex Sanders 地点:3

比赛:跳高150米

名称:Alex Sanders 地点:1

姓名:John Smith 放置 2

名称:Gabriel Donaldson 地点:3

等等......

在一项体育赛事中,不同人的名字可能会被重复用于不同的比赛。在所有比赛中,我如何编写一个SQL查询来排名前10名或25名等排名最高的参赛者?

我应该补充一点,性能不是问题,因为这是供个人使用而不是缩放。

1 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

SELECT Name, SUM(Place)
FROM yourTable
GROUP BY Name
ORDER BY SUM(Place) ASC
LIMIT 10    -- or 25, or 15, etc.

此查询汇总每位参赛者的排名,然后按降序排列总排名。最佳参赛者的总排名应该最低。