查询返回(分组)不存在column=条件的行



假设我有一个包含两列的表,一个是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

最新更新