這是我的表格。我如何統計具有相同工作的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