作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取一家餐厅的总星级评分的平均评分。顾客会对这家餐厅进行评价。我制作了一个用于存储客户评分的数据透视表。
The average rating =5
--------
place_ratings
---------------
user_id place_id rating
1 1 4
2 1 3
5 1 5
公式是什么,或者我如何在 php laravel 中计算它?
这是我的代码:
public function placeRating($id)
{
$rates = PlaceRating::where('place_id',$id)->select('rating')->get()->toArray();
$rateArray =[];
foreach ($rates as $rate)
{
$rateArray[]= $rate['rating'];
}
$sum = array_sum($rateArray);
$result = $sum/5;
return response()->json(['rating'=>$result],200);
}
最佳答案
不要取出所有 place_ratings
记录,如果餐厅有成千上万的用户评分,它会减慢您的 API。
尝试使用这个查询:
PlaceRating::where('place_id',$id)->selectRaw('SUM(rating)/COUNT(user_id) AS avg_rating')->first()->avg_rating;
关于php - 如何计算5星总评分的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59517230/
我是一名优秀的程序员,十分优秀!