Rails获取每天记录的方法

时间:2012-04-20 13:12:59

标签: mysql ruby-on-rails ruby-on-rails-3 activerecord

我有一个包含每小时记录的表(跨越多天)。我想做的是获取每天的最后一小时记录。

我在这里找到了MySQL解决方案:Retrieving the last record in each group(接受的答案对我来说很好,而且或多或少都有意义)

但是,我很难通过Rails查找器实现这一点,因为它不清楚如何在Rails中进行自我加入(所有文档都适用于关联)。

到目前为止,我已经尝试了这个......但无济于事(它说" id"列含糊不清)。

Report.joins("LEFT JOIN reports r2 ON (date('created_at') = date('r2.created_at') AND id < r2.id)").where("r2.id IS NULL")

1 个答案:

答案 0 :(得分:3)

您可能只需要在SQL中明确引用reports表:

Report.joins("LEFT JOIN reports r2 ON (date('reports.created_at') = date('r2.created_at') AND reports.id < r2.id)").where("r2.id IS NULL")

要获得更多“Railsey”方式,您可能需要查看has_manyfinder_sql选项并创建关联来执行此操作。