我希望按小时/天分组我的数据,甚至可能分到四分之一小时。
我可以直接在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
先谢谢你,克里斯。
答案 0 :(得分:2)
如果您不需要四分之一小时或作为替代方案(有一些工作)(并且Chris可能已经很久以前就已经发现了这一点),您可以尝试详细解答here。< / p>
要点是你可以按个别时间元素分组 - 例如group(hour(date_time_field)
- 或日期格式:
CheckIn.group("date_format(created_at, '%Y%m%d %H/%M')").count
如果您想在季度小时内添加,可以尝试this,然后添加格式
答案 1 :(得分:0)
我选择的解决方案是在桌子上创建我追踪的时间段的其他列。对于上面的示例,我将添加一个Time_Hour列,其时间向下舍入到适当的小时。然后,我可以对该列进行分组/分析,以便按小时获取统计数据。