我有一個MySQL SELECT查詢,它使用同一個表內的20個不同的比較。這裏有一個例子:一個叫做SCORE
內SELECT
結果返回MySQL - 動態計算百分位數
SELECT * FROM mytable
WHERE (col1 > (col2 * 0.25))
AND (col5 < col10) .......
我想基於列的順序來計算百分等級。我嘗試使用增量行號和COUNT(*)
來獲得股票的排名和返回的結果總數,但不知道如何分配相同的排名,其中一些結果具有相同的排名SCORE
。
下面是我試圖計算公式:
((COUNT(lower scores) + (COUNT(same/tied scores)/2)) * 100)/COUNT(total results)
如何找到相同的結果行中得分較低,相同/並列得分和總分的數量在運行計算百分?
我試圖避免使用存儲過程,因爲我想我的應用程序的管理員根據需要在我的應用程序管理區域內定製SELECT語句。
有沒有簡單的方法將這個語句變成UPDATE語句?例如,假設我在mytable中有一個名爲「percentile」的列,是否有辦法修改語句以將percentile_rank結果存儲在每行的百分列中? – Todd 2013-10-24 18:07:20