假设我有一个包含两列的表,一个是client_id,一个是布尔值。
给定的client_id有多个数据项,每个数据项的布尔值可以设置为true,也可以不设置为true。
我需要一个查询,将只返回的client_ids有NO ROWS布尔值设置为真,我需要它分组的client_id。
使用HAVING
子句过滤组:
SELECT client_id FROM my_table GROUP BY client_id HAVING SUM(boolean) = 0
注意,SUM(boolean)
在MySQL中工作,因为它没有真正的布尔类型;在其他RDBMS中,您要么必须使用不同的聚合函数,要么测试布尔值并返回可以在SUM()
中使用的结果:
... HAVING SUM(CASE WHEN boolean THEN 1 END) = 0