原文删掉
题目当作是在求 PR 值
PR=100-(100R -50) /N
其中 N 代表总比赛人数,R 代表此分数在总人数之间的排名
N 的取得很多种方式,设定变量,分两次查询,子查询,就不多做赘述
这边假设有一个表,叫做 scores,且存两个值 :id, score
写入 1000 人参加比赛,分数随机排序
所以我们第一个重点是要取得每一行在总排名内到底排第几个,关键字是 ROW_NUMBER,带
入上面的公式后
就可以取得包含 PR 的资料
id, score, pr
然后取得包含排名的资料,就可以针对排名资料去排序跟切分你要的结果
当然这种纯 SQL 中执行计算的方式不一定恰当,拉下来用 PHP 计算更简单就不提示了