假设我有一个包含两列的表,一个client_id和一个布尔值。
给定的client_id有多个数据条目,每个条目可能有也可能没有布尔值设置为true。
我需要一个只返回没有ROWS且布尔值设置为true的client_ids的查询,我需要按client_id分组。
我确信这很简单,它现在就让我失望了。
答案 0 :(得分:1)
使用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