这是我的表格。我如何统计具有相同工作的ENAME
的数量?
看着桌子我可以看到答案是13,但我该如何计算它?
SELECT COUNT(ename)
FROM emp
GROUP by job
上面这个SQL语句是不是我找的:)代码)
这是我的表格。我如何统计具有相同工作的ENAME
的数量?
看着桌子我可以看到答案是13,但我该如何计算它?
SELECT COUNT(ename)
FROM emp
GROUP by job
上面这个SQL语句是不是我找的:)代码)
具有相同工作的员工人数。一种方法是汇总方法。如果再算上每个作业的员工数量,则总和的次数这个数字大于1:
select sum(case when cnt > 1 then cnt else 0 end)
from (select emp.job, count(*) as cnt
from emp
group by emp.job
) j;
这也可以写成:
select sum(ccnt)
from (select emp.job, count(*) as cnt
from emp
group by emp.job
having count(*) > 1
) j;
有一个join
做法。但也许是考虑这一个简单的方法是使用exists
而不是join
:
select count(*)
from emp e
where exists (select 1
from emp e2
where e2.job = e.job and e2.empno <> e.empno
);
随着emp(job, empno)
的指数,这可能是最快的方法。
你想要的人数公关。工作,还是其他人拥有工作的人数? – bolav