如何使用activerecord和POSTGRES平均产品评论分数

假设我有一张包含100个产品评论的表格。 每个评论都有一个“id”,“product_id”和“得分”。 现在,我想要做的是提供每个产品的平均分数……那么有没有办法使用Rails来查询数据库呢? 我肯定一定有,但我无法弄清楚。 我希望发生以下情况:

Toyota Corolla 70% Toyota Camry 78% Toyota Avalon 80% 

..显然基于平均每个的多个评论,但以上述方式呈现。

更新:

对于那些对解决方案感兴趣的人

这是在控制器中:

 @ordered_hash = Review.group('aidmodel_id').average('score') @keys = @ordered_hash.keys @reviews = Review.where(:aidmodel_id=>@keys).uniq_by {|x| x.aidmodel_id} 

这是在视图中:

     

@ordered_hash[review.aidmodel_id]行提供具有所需ID的援助模型的平均分数。

你可以混合平均值和组来做类似的事情

 MyClass.group('product_id').average('score') # => {product_id1 => average1, product_id2 => average2, ... } 

您需要将查询更改为

 MyClass.select('product_id').group('product_id').average('score') 

看看这个问题 。

更新:

尝试MyClass.select('DISTINCT(product_id)').group('product_id').average('score')

在postgres看这里分组