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