Я пытаюсь рассчитать среднее значение в моей таблице. Имя столбца term1_result
и среднее значение находится в массиве, так как в моей таблице много студентов и предметов. Я группирую их по student_id
, но я всегда получаю нулевое значение. Я использую Laravel фреймворк.
Код
$scores = Grades::with('student', 'subject')->groupBy('student_id')->get();
foreach($scores as $score) {
foreach($score as $key => $value) {
$sum_arr[] = $value['term1_result'];
}
$avg = array_sum($sum_arr) / count($sum_arr);
$avgarr[] = $avg;
}
dd($avgarr);
Результат
array:6 [▼
0 => 0
1 => 0
2 => 0
3 => 0
4 => 0
5 => 0
]
Вы должны попробовать это:
$scores = Grades::with('student','subject')->groupBy('student_id')->avg('term1_result');
Это из-за вашего контента SQL!
Вы сбросили свои результаты, чтобы увидеть результат?
Вы должны суммировать по каждому пункту в каждой группе.
Ты можешь видеть этот Узнать больше