Ольга Арыспаева
Ольга Арыспаева

Помогите составить запрос MySQL!

Дан фрагмент таблицы электронного журнала:
- ФИО ученика
- Дата
- Оценка
- Предмет

1. Необходимо вывести ФИО ученика, у которого средняя оценка за всё время обучения > 4.5 и нет ни одной оценки 2 в этом календарном году.
2. Вывести для каждого ученика предмет с самой лучшей у него успеваемостью за весь период обучения (по средней оценке по предмету), и с самой худшей. Если предметов несколько, вывести первый по алфавитному порядку.

По первому я смог составить вот такой запрос: SELECT FIO, AVG(Оценка) FROM Journal WHERE NOT Оценка = 2 GROUP BY FIO HAVING AVG(Оценка) >4.5;
Но он не совсем корректный, так как условие отсутствие оценки 2 работает не правильно. Оно просто изначально убирает все двойки из выборки. Второе вообще не понимаю как должно выглядеть.

БГ
Борис Горшков

Здравствуйте.
Попробуйте в 1-м запросе так: WHERE NOT fio in (select j.fio from Journal as j where j.Оценка = 2 and YEAR(j.date)=YEAR(now()))

АВ
Артём Высоколов

Чтобы проверить правильность ответа, нужно как минимум, установить себе на комп MySQL. А так, без практической проверки в реальной таблице - это вилами по воде, не серьёзно.

Похожие вопросы
Помогите оптимизировать запрос MySQL
Запрос MYSQL
mysql запрос
Как обновить столбец в MySQL
Как получить многомерный массив одним запросом mysql, wordpress...
Помогите написать запрос T-SQL
Как составить SQL запрос?
БД Stack Overflow, составить к ней три запроса
Помогите разобраться с ошибкой в SQL запросе
Как составить запрос, который выводит список?