2017-10-29 318 views
0

我可以使用'where'轻松获得单个平均值。如何使用Laravel获得平均值

 $rate = DB::table('reviews') 
      ->where('p_id', 2) 
      ->avg('rate'); 

但我不知道如何通过p_id得到所有的平均值GROUP。

id p_id rate 
1 2 3 
2 2 4 
3 2 3 
4 1 4 
5 2 3 
6 2 2 
7 2 5 
8 3 3 
9 3 2 

所以结果我想是象下面这样:

的p_id 1:平均值

的p_id 2:平均值

的p_id 3:平均值

回答

0

您可以使用selectRaw然后使用groupBy。

代码:

$result = DB::table('reviews') 
       ->groupBy('p_id') 
       ->selectRaw('p_id, avg(rate)') 
       ->get();` 

您应该检查你的数据库文件是否可以在数据库中使用AVG函数。我使用mariadb,它支持数据库中的avg函数。