Вывод количества "отличников" из таблицы - 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.

  1. SELECT STUDENT_id - выбирается столбец STUDENT_id из таблицы SESSIA.
  2. FROM SESSIA - указывается таблица SESSIA, из которой производится выборка.
  3. GROUP BY STUDENT_id - данные группируются по столбцу STUDENT_id, чтобы получить уникальные значения.
  4. HAVING SUM(OCENKA_id)/COUNT(*)=4 - применяется условие, которое фильтрует только те строки, где сумма оценок (SUM(OCENKA_id)) делится на общее количество оценок (COUNT(*)) равным 4. Это условие позволяет найти только тех студентов, которые получили оценку 4. Таким образом, результатом выполнения данного кода будет количество студентов, которые получили оценку 4.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы