Файл: Лабораторная работа 2 нгасу(Сибстрин) Студент Шадрин М. Е. Группа 110магв.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 29.11.2023

Просмотров: 28

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ОТЧЕТ

ПО ЛАБОРАТОРНОЙ РАБОТЕ
Лабораторная работа №2

НГАСУ(Сибстрин)

Студент

Шадрин М.Е.

Группа

110маг-в



Новосибирск 2023




Так как 41 нет сгенерировал еще число 2

40. Используя данные из таблицы HR.EMPLOYEES, отобразить номера департаментов, в которых максимальная месячная зарплата превышает 10000.

SELECT DEPARTMENTS.DEPARTMENT_ID, COUNT(*) FROM HR.DEPARTMENTS, HR.EMPLOYEES WHERE HR.EMPLOYEES.DEPARTMENT_ID = HR.DEPARTMENTS.DEPARTMENT_ID AND SALARY >= 10000 GROUP BY DEPARTMENTS.DEPARTMENT_ID


16. По данным из таблицы HR.EMPLOYEES найти количество сотрудников и среднюю зарплату для каждого департамента.

SELECT AVG(SALARY) AS "SALARY",count(DEPARTMENT_ID) AS "COUNT MANAGER" FROM HR.EMPLOYEES GROUP BY DEPARTMENT_ID


12. По данным из таблицы HR.EMPLOYEES сформировать список должностей с указанием job_id, количества сотрудников, средней зарплаты и разницы между самой высокой и самой низкой зарплатой. При формировании списка ограничиться департаментами, у которых номера отличаются от 80, 90 и 100.

SELECT JOB_ID, COUNT(JOB_ID) AS "MANAGER", AVG(SALARY) AS "AVG SALARY", MAX(SALARY) - MIN(SALARY) AS "DIFF SALARY" FROM HR.EMPLOYEES WHERE DEPARTMENT_ID IN (90, 100, 80) GROUP BY JOB_ID



20. По данным из таблицы HR.EMPLOYEES найти для каждого департамента минимальную и максимальную зарплату в разрезе отдельных должностей. Результаты упорядочить по убыванию DEPARTMENT_ID.

SELECT t1.JOB_ID, t1.DEPARTMENT_ID, t1.SALARY FROM HR.EMPLOYEES t1 WHERE t1.salary in (

select min(salary) from HR.EMPLOYEES tmin WHERE t1.DEPARTMENT_ID = tmin.DEPARTMENT_ID

union

select max(salary) from HR.EMPLOYEES tmax WHERE t1.DEPARTMENT_ID = tmax.DEPARTMENT_ID ) ORDER BY t1.DEPARTMENT_ID DESC



10. По данным из таблицы HR.EMPLOYEES сформировать список менеджеров, у любого из которых в подчинении находится не менее 4 сотрудников. Список сгруппировать по департаментам и отсортировать в порядке возрастания DEPARTMENT_ID


SELECT COUNT(t2.MANAGER_ID) AS "COUNT MANAGER", t2.DEPARTMENT_ID FROM HR.EMPLOYEES t2 HAVING COUNT(t2.MANAGER_ID) > 4 GROUP BY t2.DEPARTMENT_ID ORDER BY t2.DEPARTMENT_ID DESC



29. По данным из таблицы HR.EMPLOYEES посчитать, сколько сотрудников было принято на работу во 2-й половине каждого месяца в течение 2005-го года

SELECT COUNT(TO_CHAR(HIRE_DATE, 'MM')) AS "COUNT MANAGER" FROM HR.EMPLOYEES WHERE TO_CHAR(HIRE_DATE, 'YYYY') = 2005 AND TO_CHAR(HIRE_DATE, ' DD') > 15 GROUP BY TO_CHAR(HIRE_DATE, 'MM')



2. По данным из таблицы HR.LOCATIONS сформировать список идентификаторов стран (country_id) и одновременно для этих стран вычислить количество мест размещения департаментов. В полученный список включить только страны с количеством мест размещения департаментов не менее 2.

SELECT COUNTRY_ID, COUNT(COUNTRY_ID) FROM HR.LOCATIONS GROUP BY COUNTRY_ID HAVING COUNT(COUNTRY_ID) >= 2



34. Записи из таблицы HR.DEPARTMENTS сгруппировать по коду местоположения (LOCATION_ID) и вычислить количество департаментов, относящихся в каждому местоположению.

SELECT COUNT(DEPARTMENT_ID), LOCATION_ID FROM HR.DEPARTMENTS GROUP BY LOCATION_ID



33. Записи из таблицы HR.JOBS сгруппировать по максимальному размеру зарплаты (MAX_SALARY), вычислить количество записей в каждой группе и отобразить только те группы, в которых имеется не менее 2 записей.

SELECT COUNT(MAX_SALARY) FROM HR.JOBS HAVING COUNT(MAX_SALARY) >= 2 GROUP BY MAX_SALARY



18. По данным из таблицы HR.EMPLOYEES найти количество сотрудников и фонд заработной платы для каждого департамента.

SELECT SUM(SALARY), COUNT(DEPARTMENT_ID) FROM HR.EMPLOYEES GROUP BY DEPARTMENT_ID