根据最佳Y分数选择Top X用户,按SUM(分数)排序

时间:2016-11-07 23:34:48

标签: mysql

我有2个表,一个用户表和一个提交表

用户:

___id_____name____
   1   |  hello
   2   |  world
   3   |  foo
   4   |  bar
      ...
   50  |  peter

提交

___id_____userid______score___
   1   |    1    |    40
   2   |    2    |    60
   3   |    4    |    30
   4   |    12   |    60
   5   |    43   |    40
   6   |    3    |    100
   7   |    3    |    90
   8   |    34   |    60
   9   |    4    |    30
   10  |    3    |    50
   11  |    2    |    60
   12  |    2    |    10
   13  |    1    |    20
   14  |    4    |    70
           ...
   100 |    34   |    70

我想要做的是获取一组10条记录,这些记录按每个用户前20个(或更少)分数的总和排序。即。排名前10位的用户,基于前20名(或更少)分数的总和。 “或更少”适用于某些用户可能没有提交20份,但他们的分数总和仍然较高的情况。

例如,用户A只有15个提交,总共2000分,而用户B提交了28个,但他的前20个分数总共只有1800分。用户A将被选择和/或排名高于B.

非常感谢任何帮助,谢谢!

0 个答案:

没有答案