Не получается корректно создать sql запрос
Имеется такая задача.
Таблица Students имеет поля StudentId, FirstName, LastName, Group и содержит информацию о студентах института. Таблица Exams имеет поля StudentId, ExamName, Result и содержит результаты экзаменов студентов.
- a) написать SQL запрос, который выводит имена и фамилии студентов у которых больше двух экзаменов с результатом меньше 3.
- b) написать SQL запрос, который выводит название групп, в которых таких студентов больше 10
На пункт a) ответил:
SELECT Student.FirstName, Student.LastName, COUNT(Student.StudentId) as count
FROM Student INNER JOIN Exams
ON Student.StudentId = Exams.StudentId
WHERE Exams.Result < 3
GROUP BY Student.StudentId HAVING count >= 2;
нужен пункт b)
Ответы (1 шт):
Автор решения: Fox758
→ Ссылка
Я решил вот так:
a)
SELECT Student.FirstName, Student.LastName, COUNT(Student.StudentId) as count
FROM Student INNER JOIN Exams
ON Student.StudentId = Exams.StudentId
WHERE Exams.Result < 3
GROUP BY Student.StudentId HAVING count >= 2;
b)
SELECT student._group, COUNT(*) as count
FROM (
SELECT Student.FirstName, Student.LastName, Student.StudentId, COUNT(*) as count
FROM Student INNER JOIN Exams
ON Student.StudentId = Exams.StudentId
WHERE Exams.Result < 3
GROUP BY Student.StudentId HAVING count >= 2) AS fail
JOIN Student ON fail.StudentId = Student.StudentId
JOIN Exams ON Student.StudentId = Exams.StudentId
GROUP BY Student.StudentId
HAVING count > 10;