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

时间:2011-04-19 22:47:51

标签: 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   | datetime
5  | 33     | foo    | bom   | datetime

我希望能够做的是,在Ruby on Rails中,按用户ID对行进行分组,但只抓取每个组的最新条目。

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

Thing.select("userid, notes").where(:action => "foo").order('`when` DESC')

通常会返回以下内容:

 userid | notes 
 --------------
 1      | bar  
 33     | bax  

当我正在寻找的是:

 userid | notes 
 --------------
 1      | okay
 33     | bom

我想我复制/粘贴好了......嘿。有没有办法实现我想要做的事情?不试图在我的应用程序内搜索?谢谢。

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

1 个答案:

答案 0 :(得分:0)

只需将.order(“id desc”)添加到行尾

即可