Sql 在RubyonRails中帮助排序记录

Sql 在RubyonRails中帮助排序记录,sql,ruby-on-rails,ruby,ruby-on-rails-3,Sql,Ruby On Rails,Ruby,Ruby On Rails 3,我有一个包含两列的分数表:user\u id和score user\u idscore 1200 1120 1230 2300 2345 3100 340 4350 4500 Score.order('Score DESC')。limit(3)列出了前三名得分。相反,如果每个用户在列表中只获得一个位置(他们的最高分数),我将如何获得前3名的分数 上表中的高分为: 用户id:4分:500 用户id:2分:345 用户id:1分:230 谢谢 提姆 使用新Arel: Score.group(:us

我有一个包含两列的分数表:
user\u id
score

user\u idscore
1200
1120
1230
2300
2345
3100
340
4350
4500

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

上表中的高分为:

用户id:4分:500
用户id:2分:345
用户id:1分:230

谢谢

提姆

使用新Arel:

Score.group(:user_id).order('score DESC').limit(3)

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

Score.order('score DESC').group('user_id').limit(3)

做这一切都是老派的Rails 2风格!是的,我以前没有阿雷尔在身边。我正要编辑它:Score.group(:user_id)。order('Score DESC')。limit(3)问题:是先调用group还是先调用order有关系吗?@zabba:没有关系,任何链都会生成完全相同的SQL。因此,只需将其排序为最适合您的查询推理即可。
Score.order('score DESC').group('user_id').limit(3)