按一列分组并由另一列求和

时间:2016-03-08 21:04:56

标签: mysql ruby-on-rails performance rails-activerecord

尝试编写包含查询的rake任务,该查询将在连接表上按一个值分组,然后对另一列求和。我想使用查询界面来做。此任务的目的是查找过去5天内最受欢迎的视频。

相关部分:

 course_ids = Course.where(school_id: priority_schools).pluck(:id)

 sections = Section.where(course_id: course_ids)

 sections.each do |section|
   users = section.users.select {|user| user.time_watched > 0}
   user_ids = []
   users.each { |user| user_ids << user.id }

   user_videos = UserVideo.group(:video_id).
    select(:id, :video_id, :time_watched).
    where("created_at > ?", Date.today - 5.days).
    where(user_id: user_ids).sum(:time_watched)

   p "user_videos: #{user_videos.inspect}"

 end

有关如何/最佳方式编写此查询的任何建议?

0 个答案:

没有答案