Sql Rails-按关联的平均值排序
我正在努力添加一个排序功能在我的假imdb复印机网站 我的电影通过协会有很多评论。不幸的是,我找不到如何在索引页面上按平均评论排序@movies对象 显然,这Sql Rails-按关联的平均值排序,sql,ruby-on-rails,activerecord,Sql,Ruby On Rails,Activerecord,我正在努力添加一个排序功能在我的假imdb复印机网站 我的电影通过协会有很多评论。不幸的是,我找不到如何在索引页面上按平均评论排序@movies对象 显然,这 includes(:reviews).order("reviews.rating_out_of_ten desc") 不起作用,只有在每部电影的第一次评论中才有顺序。 我如何编写它,使其按所有相关评论的平均顺序排列 提前多谢为了按平均电影分数排序,请加入评论表,并在order by子句中使用avg函数,即 Movie .sele
includes(:reviews).order("reviews.rating_out_of_ten desc")
不起作用,只有在每部电影的第一次评论中才有顺序。
我如何编写它,使其按所有相关评论的平均顺序排列
提前多谢为了按平均电影分数排序,请加入评论表,并在order by子句中使用
avg
函数,即
Movie
.select('movie_id, movie_name, avg(reviews.rating_out_of_ten)')
.join(:reviews)
.group('movie_id, movie_name')
.order('avg(reviews.rating_out_of_ten) desc')
你在这篇文章中需要哪一个字段的平均值??我不确定我是否理解这个问题,但我想要一个与电影相关的评论的十个字段中的平均值。为什么组中需要电影名??我认为movie_id是足够的,我将movie_名称添加到组中,因为它在select中。大多数数据库都有这样的要求,我还需要添加includes(:reviews)吗?选择不起作用,因为:“没有这样的专栏:评论。十分之二的评分”@FabienAlbi
join
应该足够了