Как получить среднее значение одного столбца конкретного пользователя - PullRequest
0 голосов
/ 10 июля 2019

У меня есть таблица, в которой хранятся результаты очистки разных пользователей. Сейчас я пытаюсь рассчитать среднее значение этого показателя очистки для всех пользователей. Например у меня есть два пользователя 1. Соседи 1 2. Соседи 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();
}

Как это, но не удалось

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Попробуйте сгруппировать пользователей и получить среднее значение по группе:

Код выглядит так:

$data = DB::table('cleaning_scores')
    ->select(DB::raw('avg(score) as avg, user_id'))
    ->groupBy('user_id')
    ->orderByDesc('avg')
    ->get();
0 голосов
/ 10 июля 2019

Вот как вы получаете среднее значение от модели

$scoresAvg = YourModel::avg('ColumnName');

надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...