У меня есть таблица с именемvaluation_data:
Он собирает оцененный уровень для данной комнаты / оценочного идентификатора / предмета / единицы / результата серии учащихся по определенному предмету.
Это мой запрос Laravel:
$assessment_tally_levels = DB::table('assessment_data')
->join('subjects', 'assessment_data.subject_id', '=', 'subjects.id')
->select('subjects.short_name as Subject', 'assessment_data.assessed_level as Level', DB::raw('count(*) as Students'))
->where('assessment_data.user_id', Auth::id())
->where('assessment_data.room_id', $room_id)
->whereBetween('assessment_data.created_at', [$current_term->term_start." 00:00:01", $current_term->term_end." 23:59:59"])
->orderByRaw('assessment_data.assessed_level ASC')
->groupBy('assessment_data.subject_id')
->groupBy('assessment_data.assessed_level')
->get()
->toJson();
То, что я получаю как вывод JSON, таково:
[{ "Тема": "Наука", "Уровень": 1, "Студенты": 16}, { "Тема": "Phys
Эд», "Уровень": 1, "Студенты": 1}, { "Тема": "Математика", "Уровень": 1, "Студенты": 1}, { "Тема": "ELA", "Уровень" : 1, "Студенты": 2}, { "Тема": "Искусство", "Уровень": 2, "Студенты": 1}, { "Тема": "Наука", "Уровень": 2, "Студенты" : 23}, { "Субъект": "ЦФК", "Уровень": 2, "Студенты": 1}, { "субъект": "Math", "Уровень": 2, "Студенты": 3}, {» Тема ":" ELA " "Уровень": 2, "Студенты": 3}, { "Тема":" Phys
Ed " "Уровень": 2, "Студенты": 3}, { "Тема":" Phys
Эд», "Уровень": 3, "Студенты": 3}, { "Тема": "Искусство", "Уровень": 3, "Студенты": 1}, { "Тема": "Наука", "Уровень" : 3, "Студенты": 40}, { "Тема": "Здоровье", "Уровень": 3, "Студенты": 4}, { "Тема": "CTF", "Уровень": 3, "Студенты" : 4}, { "Тема": "Математика", "Уровень": 3, "Студенты": 4}, { "Тема": "ELA", "Уровень": 3, "Студенты": 4}, {» Тема ":" Phys
Эд», "Уровень": 4, "Студенты": 4}, { "Тема": "Наука", "Уровень": 4, "Студенты": 41}, { "Тема": "Искусство", "Уровень" : 4, "Студенты": 4}, { "Тема": "Здоровье", "Уровень": 4, "Студенты": 2}, { "Тема": "CTF", "Уровень": 4, "Студенты" : 1}, { "Тема": "Математика", "Уровень": 4, "Студенты": 4}, { "Тема": "ELA", "Уровень": 4, "Студенты": 3}]
Проблема в том, что в классе нет 40 учеников (как указано в строке уровня науки 3 выше).
Вот ссылка на полный набор данных из примера выше (не был уверен, как еще поделиться этими данными с вами):
https://docs.google.com/spreadsheets/d/1swc9AVLp0ZVDJw3UntgpSDQTSB2MaSunVul7zR0kNf8/edit?usp=sharing
Мне нужно сгруппировать студентов по их студенческому идентификатору и усреднить все оценочные уровни этого студента по предмету вместе, чтобы получить единый подсчет для студента.
Как я могу это сделать?