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

问题描述

| 在我的表格中,我有“团队和积分”列,我想获得前5名的团队。具有相同得分的团队应分组,并考虑作为排名之一,因此,如果5个团队的得分相同,则所有团队都应成为排名和得分之一。下一次根据团队得分记录     

解决方法

尝试
SELECT DISTINCT(point),team
FROM tableTeam
ORDER BY points DESC LIMIT 5
    ,
  SELECT team,points,(SELECT COUNT(*)
            FROM teams t2
           WHERE t2.points > t1.points) + 1 rank
    FROM teams t1
ORDER BY points DESC
   LIMIT 5
    ,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