Mysql 按一列分组,按另一列求和
尝试编写包含查询的rake任务,该查询将按联接表上的一个值分组,然后对另一列求和。我想用查询界面来做。此任务的目的是查找过去5天中最受欢迎的视频 在相关部分:Mysql 按一列分组,按另一列求和,mysql,ruby-on-rails,performance,rails-activerecord,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
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
course\u id=course.where(school\u id:priority\u schools)。pull(:id)
节=节。其中(课程id:课程id)
节。每个do |节|
users=section.users.select{| user | user.time_>0}
用户_id=[]
每个用户{| user | user_id当您在控制台中运行查询时,现在发生了什么?它似乎正在返回视频的键值对id:sum_time_wasted。我想我接下来需要找到每个部分观看的最大时间。请提供SHOW CREATE TABLE
和您询问的实际选择的。RoR可能会混淆。什么当您在控制台中运行查询时,现在发生了什么?它似乎返回视频的键值对\u id:sum\u time\u wasted。我想接下来需要查找每个部分观看的最大时间。请提供SHOW CREATE TABLE
,并且实际的选择了您询问的。RoR可能会比较模糊。