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);

你一定试过什么东西,这个尝试应该在问题中。提示:当最小值和最大值都是“职员”时。。。