@demon123
developer

Как составить сложные запросы в sql?

Есть вот такая схема, по ней нужно составить следующие запросы:
1)
Выберите сотрудников американского и европейского региона (AMERICA и EUROPE), у которых количество переводов по должностям не менее 2. Выборка должна содержать полное имя сотрудников, название их текущей должности и количество переводов.

SELECT first_name, last_name, job_title, count()
FROM regions, employees, jobs
Where region_name = ‘AMERICA’ and ‘EUROPE’ and count() > 2

Не совсем уверен, как проверять должности

2)
Выберите для каждого подразделения, где работают не менее 3 сотрудников количество сотрудников, минимальную и максимальную зарплату и колонку, где на просуммированы зарплаты сотрудников, работающих более 3 лет. Выборка также должна содержать название региона, страны и подразделения.

SELECT department_id
FROM employees
group by department_id
having count(*) >=3


написал только вывод департаментов, где сотрудников 3 и больше

c2a626674e764792afd1e4be490b4d2a.jpg

З.Ы: таблицы самой нет
  • Вопрос задан
  • 1066 просмотров
Решения вопроса 1
@nozzy
Symfony, Laravel, SQL
1)
select bla.* from
(
select t1.first_name "f", t1.last_name "n", count(*) "c"
from employees t1
inner join job_history t2 on t2.employee_id = t1.employee_id
inner join departments t3 on t3.departments_id = t2.departments_id
inner join locations t4 on t4.location_id = t3.location_id
inner join countries t5 on t5.country_id = t4.country_id
inner join regions t6 on t6.region_id = t5.region_id
where t6.region_name in (‘AMERICA’, ‘EUROPE’)
group by t1.first_name, t1.last_name
) bla
where bla."c" > 2
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
"количество переводов по должностям не менее 2" - значит в JOBS_HISTORY должно быть как минимум две или три записи по данному сотруднику, в зависимости от того, как заполняется эта таблица. Так что JOIN с SELECT'ом.
По второй задаче - смотрите функции MIN(), MAX(), SUM() и тот же JOIN с SELECT'ом из EMPLOYEES.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы