作者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/m.aspx?n=bbs/PHP/M.1692332156.A.E14.html
1F:推 jami520: 感謝說明,我再想一想中間的邏輯 08/20 06:13