Sql 获得给定工作的最低员工数
我有这张桌子:Sql 获得给定工作的最低员工数,sql,oracle,top-n,Sql,Oracle,Top N,我有这张桌子: Name Null? Type -------------------------- -------- ------------ EMPLOYEENO NOT NULL NUMBER(4) ENAME VARCHAR2(15) JOB VARCHAR2(15) MGR
Name Null? Type
-------------------------- -------- ------------
EMPLOYEENO NOT NULL NUMBER(4)
ENAME VARCHAR2(15)
JOB VARCHAR2(15)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER
COMM NUMBER
DEPTNO NUMBER(2).
我想让部门拥有最少的员工,例如所有拥有“分析师”工作的员工
你能帮我查询一下吗?这里的关键是要得到每个部门从事特定工作的员工数量。在下面的查询中,这是通过子查询实现的。然后,我们希望获得从事该工作的员工人数最少的部门,因此我们以升序排序子查询返回的记录,然后使用rownum=1选择第一个结果 从中选择DEPTNO 选择计数*作为环境管理计划的编号,部门编号 来自员工EMP 其中EMP.JOBNAME='分析师' 德普诺集团 EMP ASC第号订单
其中ROWNUM=1 鉴于此类员工的最低人数可能为0,您需要对如何做到这一点有点聪明:
select d.*
from (select deptno,
sum(case when jobname = 'Analyst' then 1 else 0 end) as numAnalysts
from employees
group by deptno
order by numAnalysts asc
) d
where rownum = 1;
Count+groupby+orderby+ROWNUMI应该尝试一下。寻找所有这些概念来实现result@TusharShimpi . . . 这不会返回一个没有分析员的部门,这是我所理解的问题中的最小值。订购应该是递增的,以获得至少没有分析员的部门employees@codiacTushki . . . 非常感谢。