Ответ на задание 1

Для выбора студентов из нескольких групп можно использовать оператор IN:

SELECT FullName, Email, GroupID

FROM Student

WHERE GroupID IN (2, 3)

ORDER BY FullName ASC;

Условие:

WHERE GroupID IN (2, 3)

означает, что будут выбраны студенты, у которых GroupID равен 2 или 3.

ORDER BY FullName ASC сортирует результат по ФИО в алфавитном порядке. ASC означает сортировку по возрастанию.

Альтернативно условие можно записать через OR:

WHERE GroupID = 2 OR GroupID = 3


Ответ на задание 2

Для выполнения вычислений над набором строк используются агрегатные функции.

1. Количество дисциплин:

SELECT COUNT(*) AS CourseCount

FROM Course;

COUNT(*) подсчитывает количество строк в таблице.

2. Среднее количество кредитов:

SELECT AVG(Credits) AS AverageCredits

FROM Course;

Функция AVG() вычисляет среднее значение указанного числового столбца.

3. Минимальное и максимальное количество кредитов:

SELECT

    MIN(Credits) AS MinimumCredits,

    MAX(Credits) AS MaximumCredits

FROM Course;

MIN() определяет минимальное значение, а MAX() — максимальное.

Все показатели также можно получить одним запросом:

SELECT

    COUNT(*) AS CourseCount,

    AVG(Credits) AS AverageCredits,

    MIN(Credits) AS MinimumCredits,

    MAX(Credits) AS MaximumCredits

FROM Course;


Ответ на задание 3

Для объединения строк по значению GroupID используется GROUP BY:

SELECT

    GroupID,

    COUNT(*) AS StudentCount

FROM Student

GROUP BY GroupID

HAVING COUNT(*) >= 5

ORDER BY StudentCount DESC;

GROUP BY GroupID объединяет студентов с одинаковым идентификатором группы.

Для каждой полученной группы выполняется:

COUNT(*)

и определяется количество студентов.

Условие:

HAVING COUNT(*) >= 5

оставляет только группы, содержащие пять и более студентов.

HAVING применяется для фильтрации результатов после группировки, тогда как WHERE обычно фильтрует отдельные строки до выполнения GROUP BY.

Команда:

ORDER BY StudentCount DESC;

сортирует результат от группы с наибольшим количеством студентов к группе с наименьшим.