ruby-on-rails - 如何按一天中的小时对记录计数进行分组

标签 ruby-on-rails activerecord

这是我的模型:

交互.rb

class Interaction < ActiveRecord::Base

  belongs_to :report
  belongs_to :post
  belongs_to :fb_user
  has_one :fb_page

报告.rb
class Report < ActiveRecord::Base

  belongs_to :user

  has_many :page_stats,
    dependent: :destroy
  has_many :interactions,
    dependent: :destroy
  has_many :fb_users,
    through: :interactions
  has_one :fb_page,
    foreign_key: :fb_id,
    primary_key: :fb_page_id
  has_many :posts,
    dependent: :destroy

用户名文件
class FbUser < ActiveRecord::Base

  self.primary_key = "id"
  has_many :interactions

我想做的是按一天中发生的时间对交互进行分组。我正在寻找 1-24(一天中的小时,UTC)的哈希值,并按交互发生的时间对交互计数进行分组。

这是一个示例返回值:

{{1 => 23}, {2 => 7}, {n => x}}

基本上,第 1 小时有 23 次交互,第 2 小时有 7 次交互。我想在一天中的每 1 到 24 小时内执行此操作。

交互有一个名为“interaction_time”的列,它是交互发生的时间。谢谢

最佳答案

对于postgres,

Interaction
.select('EXTRACT(HOUR from interaction_time)')
.group('EXTRACT(HOUR FROM interaction_time)')
.order('EXTRACT(HOUR from interaction_time)')
.count

关于ruby-on-rails - 如何按一天中的小时对记录计数进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21006201/

相关文章:

mysql - 无法打开 Rails 控制台:未配置生产数据库,建立连接引发 ActiveRecord::AdapterNotSpecified

ruby-on-rails - 如何防止我的 Rails 查询耗尽内存

mysql - 在 linux 文件系统上索引文件的 Ruby 进程

ruby-on-rails - Active Record 中的“或”运算符?

ruby-on-rails - Activerecord 查询 .where 字符串作为数字

ruby-on-rails - Nginx 乘客集成模式总是需要 Passengerfile.json 文件?

ruby-on-rails - rails : How do I autocomplete search for Name but save ID?

javascript - 带 rails 的自定义国家/州下拉菜单

ruby-on-rails - rails CanCan : Letting users set-up certain permissions themselves (photo gallery use case)

ruby-on-rails - git clone 我的 rails 项目后出现错误