我被迫在数据库表中的许多列上创建百分比排名,而我真的为此感到挣扎。通常我会使用PERCENT_RANK函数,但是由于我们的MySQL版本不提供该函数,因此我不得不使用常规查询。
我有一个包含列的表:
UID Total-Orders-Placed Last-Order-Date-Diff
12884 8 351
10985 11 106
30613 3 43
30820 2 134
23421 9 76
我想添加2个排名列,如下所示:
UID Total-Orders-Placed Last-Order-Date-Diff rec_rank freq_rank
12884 8 351 0.34 0.86
10985 11 106 0.64 0.91
30613 3 43 0.85 0.59
30820 2 134 0.57 0.40
23421 9 76 0.77 0.88
实际上,我有数千行和其他列,但这是要点。我已经能够在Excel中完美地做到这一点,但是我真的很难在MySQL数据库中转换为查询/视图,以便可以实时查看我们的数据。
我已经尝试过PERCENT_RANK(),但是如上所述,我们无法使用此功能。
我尝试了此处讨论的查询,但没有获得太大的成功:http://code.openark.org/blog/mysql/sql-ranking-without-self-join
任何帮助编写代码或对我有更好的了解的确有帮助。