我可以使用'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:平均值
答案 0 :(得分:0)
您可以使用selectRaw然后使用groupBy。
代码:
$result = DB::table('reviews')
->groupBy('p_id')
->selectRaw('p_id, avg(rate)')
->get();`
您应该检查数据库文档是否可以在数据库中使用avg函数。我使用mariadb,它支持数据库中的avg功能。