我正在尝试创建一个管理信息中心,显示有关该网站的管理员相关统计信息。例如,给定一家公司有很多用户,找到每家公司的平均用户数,或公司拥有的最大用户数。
我找到了activerecord ::计算,这似乎完成了我想要的大部分工作,但据我所知,它不会让你对关系做任何事情。我如何找到按关系分组的计数或平均值?
答案 0 :(得分:1)
你必须从用户的角度来考虑它。
最简单的方法是
# get a hash of company_ids and user counts
User.group(:company_id).count
但是你必须加载公司并匹配它们。
然后你可以尝试做
user_counts = User.group(:company_id).count
company_users = Company.all.map{|company| user_counts[company.id]}
# the maximum
company_users.max
# the average
company_users.sum.to_f / company_users.length