如何使用Laravel获取平均值

时间:2017-10-29 04:00:16

标签: php laravel

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

       $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:平均值

1 个答案:

答案 0 :(得分:0)

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

代码:

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

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