我有下表:
员工表:
Id skillset
1 O
2 J
2 O
3 J
4 J
4 O
5 O
5 J
5 U
我想要一个查询只获得那些技能组合为O和J(Oracle和java)的人员 这意味着只有2和4,甚至不是5 bex它具有技能组合unix。
答案 0 :(得分:2)
做GROUP BY
。使用HAVING
确保id有两个不同的技能组值,并且没有O和J的其他值:
select id
from tablename
group by id
having count(distinct skillset) = 2
and count(case when skillset not in ('O','J') then 1 end) = 0