我有一个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