我有一个包含每小时记录的表(跨越多天)。我想做的是获取每天的最后一小时记录。
我在这里找到了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")
答案 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_many
的finder_sql
选项并创建关联来执行此操作。