[英]Oracle SQL query count distinct branches
我想做的是知道擁有mgr和沒有mgr的員工數量。 該表是這樣的:
Emp Branch Mgr
EmpA Branch1 Mgr1
EmpB Branch2 Mgr2
EmpC Branch1 Mgr2
EmpD Branch1
EmpE Branch2 Mgr2
EmpF Branch1 Mgr2
我想要獲得的輸出是這樣的:
Branch HasMgr HasNoMgr
Branch1 3 1
Branch2 2 0
已經嘗試過此代碼,但結果錯誤
SELECT branches,
(SELECT COUNT(*) FROM tbl WHERE mgr IS NULL),
(SELECT COUNT(*) FROM tbl WHERE mgr IS NOT NULL )
FROM tbl GROUP BY branches
使用子查詢來匯總所有帶/不帶值的經理。 希望這可以幫助。 謝謝。
SELECT branch,
SUM(case when Mgr is not null then 1 else 0 end) hasmgr,
SUM(case when Mgr is not null then 0 else 1 end) hasnomgr
FROM tbl
GROUP by branch;
With dat as(
Select 'Emp' emp , 'Branch' Branch, 'Mgr' as manager UNION ALL
Select 'EmpA' , 'Branch1', 'Mgr1' union all
Select 'EmpB' , 'Branch2', 'Mgr2' union all
Select 'EmpC' , 'Branch1' , 'Mgr2' union all
Select 'EmpD' , 'Branch1' , null union all
Select 'EmpE' , 'Branch2' ,'Mgr2' union all
Select 'EmpF' , 'Branch1' , 'Mgr2'
)
SELECT Branch,count(manager) hasMgr,sum(case when manager is null then 1
else 0 end) hasNoMgr FROM dat
group by branch
從TAB1 GROUP BY BRANCH中選擇分支,將sum(decode(mgr,null,0,1))作為“ hasmgr”,將sum(decode(mgr,null,1,0))作為“ hasnomgr”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.