Сгруппировать данные, ограничив выборку по значениям определенного поля

Нужно реализовать 2 запроса:

  1. По данным из таблицы HR.EMPLOYEES сформировать список тех менеджеров, у которых в подчинении находится не менее 5 сотрудников. При формировании списка ограничиться департаментами с номерами 50 и 80.
  2. По данным из таблицы 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 - ограничение вывода сгруппированных результатов

→ Ссылка