Как посчитать кол-во студентов определённого ранга?

Таблица marks базы данных test имеет следующую структуру:
id_student | id_sabject | value
id_student и id_sabject - это номера студентов и предметов, value - значение оценки у данного студента по данному предмету.
Как вывести кол-во отличников, хорошистов и троечников, если
у отличников по всем предметам должно быть value="Отлично",
у хорошистов "Хорошо" и "Отлично",
у троечников "Удов.", "Хорошо" и "Отлично".

Заранее спасибо.
  • Вопрос задан
  • 2430 просмотров
Решения вопроса 1
@Arik
может
SELECT
    (SELECT COUNT(a.`id`) FROM `marks` AS a WHERE a.`value` IN ("Отлично")) AS `count_5`,
    (SELECT COUNT(b.`id`) FROM `marks` AS b WHERE b.`value` IN ("Хорошо", "Отлично")) AS `count_4_5`,
    (SELECT COUNT(c.`id`) FROM `marks` AS c WHERE c.`value` IN ("Удов.", "Хорошо", "Отлично")) AS `count_3_4_5`
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
sabject кровь из глаз пошла.

count(*) as amount, value
и
group by value
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В подзапросе выбираете минимальную оценку для каждого студента, в основном запросе - группируете по оценкам. Смотрите GROUP BY и MIN()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы