作者pvq212 (Malamute)
看板PHP
标题Re: [请益] 请问要如何统计排名的部分
时间Fri Aug 18 12:15:54 2023
原文删掉
题目当作是在求 PR 值
PR=100-(100R -50) /N
其中 N 代表总比赛人数,R 代表此分数在总人数之间的排名
N 的取得很多种方式,设定变量,分两次查询,子查询,就不多做赘述
这边假设有一个表,叫做 scores,且存两个值 :id, score
写入 1000 人参加比赛,分数随机排序
所以我们第一个重点是要取得每一行在总排名内到底排第几个,关键字是 ROW_NUMBER,带
入上面的公式後
就可以取得包含 PR 的资料
id, score, pr
然後取得包含排名的资料,就可以针对排名资料去排序跟切分你要的结果
当然这种纯 SQL 中执行计算的方式不一定恰当,拉下来用 PHP 计算更简单就不提示了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 39.12.24.181 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1692332156.A.E14.html
1F:推 jami520: 感谢说明,我再想一想中间的逻辑 08/20 06:13