小编典典

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

sql

我有一个分数表,其中包含两列:user_idscore

user_id    score
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 score: 500
user_id: 2 score: 345
user_id: 1 score: 230

谢谢!


阅读 173

收藏
2021-04-22

共1个答案

小编典典

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

Score.order('score DESC').group('user_id').limit(3)
2021-04-22