SQL‑запрос: отделы, в которых работает более двух сотрудников

После исправления синтаксиса исходных DDL/INSERT используйте GROUP BY и HAVING COUNT(*) > 2. По указанным department_id ответ — O1.

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

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

После исправления синтаксиса исходных DDL/INSERT используйте GROUP BY и HAVING COUNT(*) > 2. По указанным department_id ответ — O1.

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

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

Условие

Нужно получить список отделов, где количество сотрудников превышает два.


CREATE TABLE department
    (id int(11), name varchar(100))
}

CREATE TABLE employee
    (id int(11), department_id int(11), chief_id int(11), name varchar(100), salary int(11))
}

INSERT INTO department
    (id, name)
VALUES
    (1, "O1"),
    (2, "O2"),
    (3, "O3")
}

INSERT INTO employee
    (id, department_id, chief_id, name, salary)
VALUES
    (1, 1, S, "Jean", 200),
    (2, 1, S, "Milan", 600),
    (3, 2, S, "Hagen", 400),
    (4, 2, S, "Talya", 400),
    (5, 1, NULL, "Stepen Chief", 500);

Ответ

После исправления синтаксиса исходных DDL/INSERT используйте GROUP BY и HAVING COUNT(*) > 2. По указанным department_id ответ — O1.

SELECT d.name
FROM department AS d
JOIN employee AS e ON e.department_id = d.id
GROUP BY d.id, d.name
HAVING COUNT(*) > 2;

У отдела 1 три сотрудника, у отдела 2 два, у отдела 3 ни одного. Значение chief_id для этого запроса не важно.

Исходный SQL содержит повреждения: фигурные скобки вместо завершения команд, неопределённый S и непереносимые двойные кавычки строковых литералов. Для реального выполнения исправьте их по исходным данным, не угадывая идентификатор руководителя. Запрос группирует по id, чтобы одноимённые отделы не объединялись.

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

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

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

Подробнее