根据 SQL 中另一列的 2 个变量对一列进行不同计数

Count distinct of a column based on 2 variables of another column in SQL

如何根据 SQL 中另一列的 2 个变量获取一列的不同计数?

EX:

EMP ID        DEPT
22            fire
21            Safety
22            Safety
26            fire
22            audit
32            actuary
44            fire
44            safety
26            safety

我需要消防和安全部门的不同数量的 emp id。这里的答案应该是 3(22,26 AND 44)。你能告诉我 SQL 查询这个的最佳方法吗?

这是一种方法:

SELECT COUNT(*) FROM (
SELECT 1 dd
FROM  tablename
WHERE dept in ('fire','safety')
GROUP BY empid
HAVING COUNT(DISTINCT dept)  = 2
) t

如果您想要不同的 empids 列表:

SELECT empid
FROM  tablename
WHERE dept in ('fire','safety')
GROUP BY empid
HAVING COUNT(DISTINCT dept)  = 2