Вывод количества "отличников" из таблицы - MySQL
Формулировка задачи:
(Прошу прощение у модеров заранее, тк не знаю можно ли сюда и пхп запихивать)
Ребята помогите!
У меня есть уродская таблица SESSIA: (STUDENT_id)_____(OCENKA_id)_____(DISCIPLIN_id) _____1______________4________________1______ _____1______________4________________2______ _____1______________4________________3______ _____1______________4________________4______ _____1______________4________________5______ _____2______________4________________1______ _____2______________4________________2______ _____2______________4________________3______ _____2______________4________________4______ _____2______________4________________5______ _____3______________4________________1______ _____3______________3________________2______ _____3______________4________________3______ _____3______________2________________4______ _____3______________4________________5______ Всего 5 предметов. К каждому id студента соответствует своя оценка которая в свою очередь относиться к определенной дисциплине.Задача проста, нужно вывести кол-во отличников тобишь тех, у кого индекс оценки 4 (id4 = 5, id3 = 4 и тд).
(У меня работа не на прямую с MySQL, а через php) По данной таблице должно вывести " 2 ". И вот здесь подводит таблица. Из-за того, что id студентов не одно, а повторяющиеся подсчитать отличников я просто не знаю как. Пробовал всячески через COUNT(*) и просто SELECTы но только больше себя запутал. В отчаяние прошу помощи!Решение задачи: «Вывод количества "отличников" из таблицы»
textual
Листинг программы
SELECT STUDENT_id FROM SESSIA GROUP BY STUDENT_id HAVING SUM(OCENKA_id)/COUNT(*)=4
Объяснение кода листинга программы
В данном коде происходит подсчет количества студентов, которые получили оценку 4
в таблице SESSIA.
SELECT STUDENT_id
- выбирается столбец STUDENT_id из таблицы SESSIA.FROM SESSIA
- указывается таблица SESSIA, из которой производится выборка.GROUP BY STUDENT_id
- данные группируются по столбцу STUDENT_id, чтобы получить уникальные значения.HAVING SUM(OCENKA_id)/COUNT(*)=4
- применяется условие, которое фильтрует только те строки, где сумма оценок (SUM(OCENKA_id)) делится на общее количество оценок (COUNT(*)) равным 4. Это условие позволяет найти только тех студентов, которые получили оценку4
. Таким образом, результатом выполнения данного кода будет количество студентов, которые получили оценку4
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д