这是我的模型:
交互.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/