Получить список работников с совокупной зарплатой выше 20

Сгруппируйте выплаты по сотруднику и отберите суммы больше 20 через HAVING. Для вывода сотрудников соедините агрегированные выплаты с Employee.

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

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

Сгруппируйте выплаты по сотруднику и отберите суммы больше 20 через HAVING. Для вывода сотрудников соедините агрегированные выплаты с Employee.

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

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

Условие

Имеются две таблицы: Employee, содержащая сведения о сотрудниках, и SalaryPayments, где фиксируются ежемесячные выплаты. Составьте SQL‑запрос, который отобразит всех работников, у которых суммарные выплаты за весь период превышают 20.

Ответ

Сгруппируйте выплаты по сотруднику и отберите суммы больше 20 через HAVING. Для вывода сотрудников соедините агрегированные выплаты с Employee.

При полях Employee.id/name и SalaryPayments.employee_id/amount:

SELECT e.id, e.name, SUM(p.amount) AS total_paid
FROM Employee e
JOIN SalaryPayments p ON p.employee_id = e.id
GROUP BY e.id, e.name
HAVING SUM(p.amount) > 20;

Названия полей здесь условные: в задаче нет полного DDL. Группировка по ID не объединяет сотрудников с одинаковым именем. Запрос учитывает весь период без фильтра даты. Для разных валют нужна отдельная группировка либо согласованное преобразование, иначе сумма не имеет определённого смысла.

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

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

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

Подробнее