У меня есть таблица БД students
со всеми итоговыми оценками для каждого предмета, что является целым числом, и рядом других полей, таких как имя и т. Д.
students
(таблицаИмея более 100 столбцов, каждая ячейка может иметь некоторый предварительно установленный идентификатор, который позже переводится в оценки / некоторую глупую технику защиты от взлома, где несколько чисел могут представлять одну оценку /)
|| name || surname|| section || math1||math 2||math 16|| physics 1||physics 2 ||... ||
|| Jonah || Smith || A4 || 17 || 19 || 0 || 193 || ||
|| John ||Doe || A3 || 0 || 0 || 34 ||12 || 0 || ...||
|| Jane ||Doe || A3 || 0 || 0 || 48 ||12 || 154 || ...||
|| Martin||Doe || A3 || 17 || 34 || 96 ||10 || 225 || ...||
DESIRABLEРЕЗУЛЬТАТ
|| avg.grade || name || surname|| section || math1||math 2||math 16|| physics 1||physics 2||... ||
|| 0.92 || John ||Doe || A3 ||0 || 0 ||... ||12 || 0 || ...||
|| 0.81 || Jane ||Doe || A3 ||0 || 0 ||... ||12 || 154 || ...||
Буквально НЕТ других связанных таблиц, за исключением
- вспомогательной таблицы памяти с оценками для представления идентификаторов
- предметов и данных учащихся
Я хочу получить выбранные (используя красноречивую модель Laravel) все поля И 'итоговая оценка', что является суммой для всех выбранных ... выше некоторого порога.(Представленные ниже
SELECT *, a FROM `students` WHERE
`name` LIKE "J%" AND `surname` LIKE "D" AND `section` = 'A3'
enter code here
AND (if(`math16`='12',0.76, 0)
+if(`geometry26`='13',0.76, 0) +if(`physics13`='325',1, 0)
+if(`programming06`='551',1, 0) +if(`biology18`='271',0.916, 0)
+ .... )/18.216 as a > 0.75
'12 ',' 13 ',' 25 ',' 551 ',' 271 '- это коды классов.
Технически, мне нужно получитьвсе студенты, которые получили более или менее одинаковые курсы с некоторыми средними оценками для данной начальной буквы имени (я имею в виду, если у меня есть Джон, который посещал определенные курсы [математика 16 с классом 0,76, биология18 с классом 0,91, ...] и Джейн [математика 16 с 0,76, программирование 06 с 100, ...], я хотел бы собрать их записи, с суммой их оценок, без остальных учеников.
Возможно, есть некоторая другая возможность собрать все строки с какими-то одинаковыми полями вместе, но я не могу понять, как я могу это сделать. Спасибо