【问题标题】:Is it possible to group by hour/minute/quarter hour directly in ActiveRecord/Rails?是否可以直接在 ActiveRecord/Rails 中按小时/分钟/刻钟分组?
【发布时间】:2012-07-24 05:09:10
【问题描述】:

我想按小时/天对我的数据进行分组,甚至可能到一刻钟。

我可以直接在 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

提前致谢,克里斯。

【问题讨论】:

  • 是的 - 这个没有答案,几乎没有人看过的问题,让我得到了风滚草徽章 :)

标签: ruby-on-rails activerecord


【解决方案1】:

如果您不需要一刻钟或作为替代方案(通过一些工作)(克里斯可能早就发现了这一点),您可以尝试详细的答案here

要点是您可以按单个时间元素进行分组——例如group(hour(date_time_field)-- 或按日期格式:

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

如果您想在一刻钟内添加,可以尝试this,然后添加格式

【讨论】:

    【解决方案2】:

    我采用的解决方案是在表格上为我之后的时间段创建额外的列。对于上面的示例,我将添加一个 Time_Hour 列,其中时间向下舍入到适当的小时。然后我可以对该列进行分组/分析,以按小时获取统计信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 2011-06-27
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      相关资源
      最近更新 更多