SQL :提取不同的值

SQL : Extract distinct value

我有一个 table 有两个列

EmpID  Beneifts
1       A
1       B
2       A
3       A
3       c
4       A

我的预期输出就是只有好处 A 的 empId

EmpID   Benefits
2        A
4        A

请帮我查询一下

使用NOT EXISTS到return一行相同的EmpID没有任何好处但是'A':

select *
from tablename t1
where t1.Benefits = 'A'
  and not exists (select 1 from tablename t2
                  where t2.EmpID = t1.EmpID
                    and t2.Benefits <> 'A')

或者,做一个 GROUP BY:

select EmpID
from tablename
group by EmpID
having min(Benefits) = 'A'
   and max(Benefits) = 'A'