我有一个表,其中存储了不同用户的清洁分数。现在,我正在尝试计算所有用户的清洁得分的平均值 例如我有两个用户 1. Roommie 1 2. Roommie 2 我想计算每个用户的清洁得分的平均得分
这是我存储每个用户分数的方式
<?php
public function store(Request $request)
{
$email = User::where('id',$request->user_id)->value('email');
$score = CleaningScore::create([
'score'=>$request->score,
'user_id'=>$request->user_id,
'giver_id'=>\Auth::user()->id
]);
// \Mail::to($email)->send(new ScoreNotification($score));
return redirect()->to('/scores/list_of_rommies/index')-
>with('success','Scores are successfully Assign to The
Rommie');
}
?>
现在我要计算每位员工的平均得分 我怎么得到那个???
我尝试这样做
$scores = Score::all();
foreach($scores as $score)
{
$cleaning = $score->score;
$average = $cleaning->avg();
}
像这样但失败了
答案 0 :(得分:0)
这是您从模型中获得平均值的方式
$scoresAvg = YourModel::avg('ColumnName');
希望有帮助
答案 1 :(得分:0)
尝试对用户进行分组并获得组的平均值:
代码如下:
$data = DB::table('cleaning_scores')
->select(DB::raw('avg(score) as avg, user_id'))
->groupBy('user_id')
->orderByDesc('avg')
->get();