Mysql 在RoR中使用GROUP BY时获取最新条目

Mysql 在RoR中使用GROUP BY时获取最新条目,mysql,ruby-on-rails,Mysql,Ruby On Rails,我有一张桌子是按以下方式组织的: id | userid | action | notes | created_at ----------------------------------------- 1 | 1 | foo | bar | datetime 2 | 33 | foo | bax | datetime 3 | 1 | foo | okay | datetime 4 | 3 | bam | bad

我有一张桌子是按以下方式组织的:

id | userid | action | notes | created_at
-----------------------------------------
1  | 1      | foo    | bar   | datetime
2  | 33     | foo    | bax   | datetime
3  | 1      | foo    | okay  | datetime
4  | 3      | bam    | bad   | datetime
5  | 33     | foo    | bom   | datetime
我希望能够做到的是,在RubyonRails中,按userid对行进行分组,但只获取每个组的最新条目

就目前而言,我已经走到了这一步:

Thing.select("userid, notes").where(:action => "foo").order('`when` DESC')
通常会返回如下内容:

 userid | notes 
 --------------
 1      | bar  
 33     | bax  
我要找的是:

 userid | notes 
 --------------
 1      | okay
 33     | bom
我想我复制/粘贴了那张好的…呵呵。有没有办法实现我的目标?不用在我的应用程序内部搜索?谢谢


更新尝试了第一个建议,没有骰子。

只需将.orderid desc添加到您的行末尾即可。

对不起,我第一次没有发现您的问题。我曾经遇到过类似的情况,并编写了一个查询来完成它。唯一的问题是这个查询在MySQL上运行得很好,然后在我转到生产PostgreSQL时就失败了。当时我去了应用程序。我不确定是否有更聪明的方法可以解决这个问题,最后我改变了一个不同的桌子,在那里我不必用这些疯狂的东西来钉住我的db。谢谢你的努力!