【发布时间】:2010-11-19 05:42:15
【问题描述】:
我遇到了一些我不知道如何处理活动记录的事情(实际上我不能确切地说如何使用 sql 来完成)我想做的事情。我想根据某个字段的最高值以及其他一些标准来选择记录。下面是一些解释我的情况的伪内容。给定以下记录:
id:1 | name:recipe1 | saved:true | revision:1
id:2 | name:recipe1 | saved:false | revision:2
id:3 | name:recipe1 | saved:true | revision:3
id:4 | name:recipe1 | saved:false | revision:4
id:5 | name:recipe2 | saved:true | revision:1
id:6 | name:recipe2 | saved:true | revision:2
id:7 | name:recipe3 | saved:false | revision:1
id:8 | name:recipe4 | saved:true | revision:1
我希望能够获取已保存的修订号最高的记录。这意味着 ID 为 3、6 和 8 的记录
我的第一直觉是做某种子查询,在修订或其他东西上获得 MAX。除此之外,我真的不知道如何去做,所以任何帮助将不胜感激。
编辑:
这是执行我想要的 sql:
SELECT id, name, MAX(revision) as "revision" FROM revisions WHERE saved = 1 GROUP BY name
现在,有什么合理的方法可以用 ActiveRecord 做到这一点?
【问题讨论】:
标签: sql ruby-on-rails activerecord