Не получается корректно создать 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;
→ Ссылка