快速提问,因为我在这个问题上变得疯狂。 我有一个表格,我保存了大量的分析数据,我必须把这些数据放在桌子上。
每条记录都有这种结构:
id: 1,
user_id: 4,
store_id: 490,
company_id: 1,
completed_courses_percentage: 87
此时我按公司对用户进行分组,然后我使用普通方法创建一个表格,其中包含按公司分组的平均已完成课程百分比。
UserActivity.group(:company_id).average(:completed_courses_percentage)
如果我有一个公司的三个人,平均分别是0,50和100,那么现在的总平均值是50%。
顺便提一下,我需要改变计算平均值的方式:我必须计算属于具有completed_courses_percentage>的公司的人的平均值。 70。
我尝试使用
UserActivity.group(:company_id).having("completed_courses_percentage > 70")
但结果是0。
答案 0 :(得分:4)
你可以试试这个。
UserActivity.where("completed_courses_percentage > 70").group(:company_id).average(:completed_courses_percentage)
P.S:没试过这个。