在Laravel中,我如何得到一个值的平均值?

时间:2017-11-15 20:26:03

标签: mysql laravel

假设我有一个充满用户的数据库。并且一个表填充了“点”用户为各种活动所获得的点数表包含以下列:

id,user_id,value,created_at,updated_at

我希望能够使用 - > sum()方法获得用户的总积分,然后将该用户的总积分与普通用户的总积分进行比较。

我知道我可以通过以下方式获得每个用户总积分的集合:

->groupBy('user_id')->selectRaw( "sum( value ) as sum" )->pluck( "sum" ); 

但是我想知道如何获得所有用户的平均总分,而不是每个用户的总分数。

谢谢!

1 个答案:

答案 0 :(得分:2)

使用laravel,您可以使用sum()方法汇总集合中的值,使用count()方法计算集合中的数字元素。总和/计数是平均值:

$sums=$whatever->groupBy('user_id')->selectRaw( "sum( value ) as sum" )->get( "sum" ); 
$avg=$sums->sum("sum")/$sums->count();

或者您需要在sql代码中使用子查询。