是否可以直接在ActiveRecord / Rails中按小时/分钟/小时分组?

我希望按小时/天分组我的数据,甚至可能分到四分之一小时。

我可以直接在ActiveRecord中执行此操作,还是应该抓取所有数据并手动执行聚合?

Table "Checkin": Time NumBikes ChangeBikes 09:00 5 5 09:05 6 1 09:10 10 4 10:00 6 4 10:05 8 2 10:10 16 8 Looking to get something like: Time Sum(ChangeBikes) 09:00 10 10:00 14 

谢谢,克里斯。

如果您不需要四分之一小时或作为替代方案(有一些工作)(并且Chris可能已经很久以前就已经发现了这一点),您可以尝试这里详述的答案。

要点是您可以按个别时间元素group(hour(date_time_field) – 例如group(hour(date_time_field)或日期格式:

 CheckIn.group("date_format(created_at, '%Y%m%d %H/%M')").count 

如果你想在四分之一小时内添加,你可以尝试这个 ,然后添加格式

我采用的解决方案是在桌子上创建我追踪的时间段的其他列。 对于上面的示例,我将添加一个Time_Hour列,其时间向下舍入到适当的小时。 然后,我可以对该列进行分组/分析,以便按小时获取统计数据。