У меня есть эти две таблицы, и мне нужно найти название отдела с максимальным количеством сотрудников.
Другие решения были не для Oracle, поэтому я публикую этот вопрос. Кроме того, было бы очень полезно, если бы запрос мог быть подробно объяснен, так как мне трудно его визуализировать.
EMPLOYEE
EMPNO EMPNAME MANAGER SALARY DEPT_NO
1 Puja 6 30000 2
2 Purabi 1 15000 3
3 Barun 6 23000 2
4 Sudha 1 20000 1
5 Amal 2 20000 1
6 Rakesh 3 30000 4
DEPARTMENT
Dept_No Dept_Name Location
1 Production LaneA
2 Marketing LaneB
3 Sales LaneC
4 HR LaneD
До сих пор мне удавалось получить наибольшее количество сотрудников. Поэтому я подумал, можно ли как-нибудь написать еще один подзапрос, в котором я снова подсчитываю сотрудников в отделах и сравниваю их с max_num_emp, который я вычислил в первом запросе.
Это запрос, который извлекает максимальное количество сотрудников. Не возвращает dept_no.
select count(dept_no)
from employee
group by dept_no
order by count(dept_no) desc
fetch first row only;
Ожидаемый результат
DEPT_NAME
Production
Marketing
Я также могу добавить столбец dept_no в запрос, тогда мне придется каким-то образом выяснить, как получить максимум, и это как-то выдавало мне ошибки, потому что запрос нарушал некоторые правила. Я действительно пытался выполнить max ( над запросом ).
Поэтому я подумал о том, чтобы просто получить максимальное количество сотрудников, а затем определить все отделы, в которых работает такое количество сотрудников, и отобразить их имя.