Sobes.tech
Senior

-- Даны две таблицы EMP - список сотрудников и зарплат, DEPT - список подразделений -- 1) Написать запрос, возвращающий имя (ENAME), подразделение (DNAME), должность (JOB) -- и на сколько зарплата работника (SAL) отличается от средней для его должности. -- 2) Отсортировать полученный результат так, чтобы сотрудник с именем JAMES был на первой строчке, -- FORD на последней, а все остальные сотрудники отсортированы по имени в обратном алфавитном порядке. select em.ename, d.dname, em.job, em.sal - avg(e.sal) over(partition by e.job) as avg_salary from emp em join dept d on d.deptno = em.deptno order by case when em.name in ('JAMES') then 0 else 1 end, case when em.name in ('FORD') then 1 else 0 end, --em.name desc Задание 2 -- Даны таблицы подразделений DEPT и DEPT2 с одинаковыми данными и уникальным ключем (DEPTNO). -- В таблице DEPT2 удалили, изменили и добавили несколько строк. -- Необходимо получить в одном запросе все номера подразделений (DEPTNO), по которым были изменения. -- Вывести номер подразделения и код операции ('I' - добавили, 'D' - удалили, 'U' - изменили). select * from dept1 union all select from dept2 select dept1.deptno from dept1 select * from dept1 join dept2 on dept2.deptno = dept1.deptno where not exist (select deptno from dept2)