从数据库中获得前5名排名

时间:2011-05-24 04:53:06

标签: mysql sql

在我的表格中,我有团队和积分栏,我希望获得前5名队伍。具有相同积分的团队应该被分组并考虑作为其中一个等级,所以如果5个团队拥有相同的积分,那么所有团队应该是根据团队积分排名和下一个上升记录

3 个答案:

答案 0 :(得分:1)

TRY

SELECT DISTINCT(point), team
FROM tableTeam
ORDER BY points DESC LIMIT 5

答案 1 :(得分:0)

  SELECT team,
         points,
         (SELECT COUNT(*)
            FROM teams t2
           WHERE t2.points > t1.points) + 1 rank
    FROM teams t1
ORDER BY points DESC
   LIMIT 5

答案 2 :(得分:0)

MySQL中没有窗口函数,因此您需要在脚本中提取排名。

另外,如果我对你的排名标准有所了解,你实际上有兴趣让前5名球队加上任何可能与第5名分数相同的其他球队。

如果是这样,您的限制应该应用于点标准的子查询:

select name, points
from teams
where points >= (
      select points
      from teams
      order by points desc
      limit 1 offset 4
      )
order by points desc, name

如果没有,按/限制的简单订单将会:

select name, points
from teams
order by points desc, name
limit 5