SQL 查找从未有列值的 ID

SQL to find IDs which never had a column value

以下是我的数据:

ID request_type
1 3
1 2
1 1
1 4
1 5
2 3
2 2
3 4
3 2

我需要一个查询来获取从未有过请求类型 1 的 ID(例如 来自之前 table 的 2,3)。

SELECT DISTINCT `ID`
FROM `my_table`
WHERE `ID` NOT IN (
  SELECT DISTINCT `ID`
  FROM `my_table`
  WHERE `request_type` = 1
)

如果 1 是可能的最低值:

select ID
from tab
group by ID
having min (request_type) > 1

或更通用:

select ID
from tab
group by ID
having max(case when request_type = 1 then 1 else 0 end) = 0

有条件聚合:

select id
from tablename
group by id
having count(case when request_type = 1 then 1 end) = 0