Oracle的SQL练习:显示员工数最多的部门信息

2025-10-25 04:17:44

1、题目:显示员工数最多的部门信息,显示部门ID、名称、部门员工数,部门的主管经理姓名*/

答案:

  select 

   dept.department_id,dept.department_name,

count(*),e1.first_name||e1.last_name

     from

            departments dept,employees e  ,employees e1

     where

             dept.department_id=e.department_id

     and

            dept.manager_id=e1.employee_id

group by

dept.department_id,dept.department_name,

e1.first_name||e1.last_name

having count(*)=(select max(count(*)) from employees  group by department_id )

Oracle的SQL练习:显示员工数最多的部门信息

1、<1>/*第一步,查询出员工人数最多的部门的员工人数*/

     select max(count(*)) from employees 

group by department_id

Oracle的SQL练习:显示员工数最多的部门信息

2、<2>/*第二步,员工表和部门表连接,以部门分组,*/

   select 

     dept.department_id,dept.department_name,

count(*),e1.first_name||e1.last_name

     from

            departments dept,employees e  ,employees e1

     where

             dept.department_id=e.department_id

     and

            dept.manager_id=e1.employee_id

     group by

 dept.department_id,dept.department_name,

e1.first_name||e1.last_name

Oracle的SQL练习:显示员工数最多的部门信息

3、<3>  /*第三部,合并一二两部,讲第一步查询出来的结果作为第二部分组完的条件*/

     select 

     dept.department_id,dept.department_name,

count(*),e1.first_name||e1.last_name

     from

            departments dept,employees e  ,employees e1

     where

             dept.department_id=e.department_id

     and

            dept.manager_id=e1.employee_id

     group by

dept.department_id,dept.department_name,

e1.first_name||e1.last_name

having count(*)=

(select max(count(*)) from employees 

group by department_id )

Oracle的SQL练习:显示员工数最多的部门信息

4、在这里提醒一下,由于可能出现两个部门人数最多的部门,所以先查出部门人数最多的人数,再去查询部门

Oracle的SQL练习:显示员工数最多的部门信息

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢