Сгруппировать данные, ограничив выборку по значениям определенного поля
Нужно реализовать 2 запроса:
- По данным из таблицы HR.EMPLOYEES сформировать список тех менеджеров, у которых в подчинении находится не менее 5 сотрудников. При формировании списка ограничиться департаментами с номерами 50 и 80.
- По данным из таблицы HR.EMPLOYEES сформировать список должностей с указанием job_id, количества сотрудников, суммарной зарплаты и разницы между самой высокой и самой низкой зарплатой.
Попробовал первый:
select manager_id, count(*) as count_worker from HR.EMPLOYEES
group by manager_id
having count(*) > 5 and department_id = 50 and department_id = 80
Но выводит ошибку, со вторым даже пока нет идей как реализовать. Можете подсказать пожалуйста
Ответы (1 шт):
Автор решения: SwaD
→ Ссылка
Конструкция WHERE должна идти после FROM
select manager_id, count(*) as count_worker
from HR.EMPLOYEES
where department_id in (50, 80)
group by manager_id
having count(*) >= 5
group by - группировка по заданным полям
having - ограничение вывода сгруппированных результатов