是否可以直接在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列,其时间向下舍入到适当的小时。 然后,我可以对该列进行分组/分析,以便按小时获取统计数据。