Выявление часто встречающихся направлений обучения

Сгруппируйте Student по speciality, отберите группы через HAVING COUNT(*) > 3 и отсортируйте названия. WHERE не заменяет HAVING для условия по размеру группы.

Короткий ответ

Что ответить на собеседовании

Сгруппируйте Student по speciality, отберите группы через HAVING COUNT(*) > 3 и отсортируйте названия. WHERE не заменяет HAVING для условия по размеру группы.

Подробный разбор

Ответ с пояснениями

Условие

В базе данных имеется таблица Student, в которой хранятся данные о студентах: имя (name), направление обучения (speciality) и дата рождения (d_o_b). Требуется составить SQL‑запрос, который вернёт только те направления, которые указаны у более чем трёх студентов. В результате должны отображаться названия таких направлений, упорядоченные по алфавиту.

Ответ

Сгруппируйте Student по speciality, отберите группы через HAVING COUNT(*) > 3 и отсортируйте названия. WHERE не заменяет HAVING для условия по размеру группы.

SELECT speciality
FROM Student
WHERE speciality IS NOT NULL
GROUP BY speciality
HAVING COUNT(*) > 3
ORDER BY speciality;

NULL исключён как отсутствие названия направления. COUNT(*) считает студентов, а не уникальные имена; одинаковые name не означают одного человека. Алфавитный порядок определяется collation базы, поэтому при специальном языковом требовании его нужно задать явно.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее