我正在一个rec联盟网站上工作,并希望列出不同类别的最佳得分手。这很容易,但是如果我要获得一个类别的前五名得分手,并且获得第一和第二,但是第三次获得三分并列,有没有办法证明这一点?
Ex:
Top 3 in Points
1 - Player A (10 pts)
2 – Player B (9 pts)
T3 – Player C (8 pts)
T3 – Player D (8 pts)
T3 – Player E (8 pts)
当新球员进入联盟并且我不想重新计算每个球员的计算时,最高x%将无效。
答案 0 :(得分:2)
我不知道您的表格结构,因此我将在此处做出一些假设,因此请根据需要调整表格和列名称。
第一步是获得前3名:
SELECT DISTINCT
`score`
FROM
`points`
LIMIT 3
然后让所有人获得这些分数,所以把它放在一起得到:
SELECT
`name`, -- Whichever fields you have
`score`
FROM
`points`
WHERE
`score` IN (
SELECT DISTINCT
`score`
FROM
`points`
LIMIT 3
)
ORDER BY
`points` DESC, -- Sort highest score first
`name` ASC; -- When tied, sort alphabetically