帮助在Ruby on Rails中对记录进行排序

Tim*_*Tim 2 ruby sql ruby-on-rails ruby-on-rails-3

我有一个包含两列的分数表:user_idscore

user_id得分
1 200
1 120
1 230
2 300
2 345
3 100
3 40
4 350
4 500
......

Score.order('score DESC').limit(3)列出前3个分数.相反,我如何获得前3个分数,其中每个用户只获得列表中的一个位置(他们的最高分).

上表中的高分将是:

user_id:4得分:500
user_id:2得分:345
user_id:1得分:230

谢谢!

蒂姆

tad*_*man 6

您应该能够对查询进行分组:

Score.order('score DESC').group('user_id').limit(3)
Run Code Online (Sandbox Code Playgroud)