Sql 选择所有员工仅为文员的部门
我只想选择那些所有员工都是职员的部门Sql 选择所有员工仅为文员的部门,sql,oracle,Sql,Oracle,我只想选择那些所有员工都是职员的部门 dep employee_name designation 10 John clerk 10 Mark clerk 10 Mary manager 20 Livia clerk 20 Peter clerk 30 Julia manager 30 Martin assistent 3
dep employee_name designation
10 John clerk
10 Mark clerk
10 Mary manager
20 Livia clerk
20 Peter clerk
30 Julia manager
30 Martin assistent
30 Viola assistent
因此,输出将是部门20,因为所有员工都是职员
dep employee_name designation
10 John clerk
10 Mark clerk
10 Mary manager
20 Livia clerk
20 Peter clerk
30 Julia manager
30 Martin assistent
30 Viola assistent
我找到了一个解决办法,如果有陷阱,请纠正我
select a.* from table a
join
(select dep from table
group by dep
having sum(case when designation = 'clerk' then 1 else 0 end)>0 and
sum (case when designation <> 'clerk' then 1 else 0 end)=0 ) b on a.dep=b.dep;
一个选择是
select dp
from employees
group by designation
having min(job) = 'clerk'
and min(job) = max(job);
你一定试过什么东西,这个尝试应该在问题中。提示:当最小值和最大值都是“职员”时。。。