MySQL分组依据:如果至少有一行包含值,如何排除分组?
MySQL Group By: How exclude group if at least one row contain value?
如果组中至少有一行满足某种条件,如何在 HAVING 子句中过滤掉该组?例如,如果有以下 table:
我想按 id1
和 id2
分组并排除其中至少一行在 someText
列中具有 "value" 的任何组?因此,在我的结果中,应排除组 (1,1),但应返回 (1,2)、(2,1) 和 (2,3)。最好,我正在寻找使用 HAVING 子句的解决方案(这只是一个说明问题的简单示例 - 但我正在处理大型查询))
您可以将 group by
和 having
与条件表达式一起使用:
select id1, id2
from mytable
group by id1, id2
having max(someText = 'value') = 0
如果组中至少有一行满足某种条件,如何在 HAVING 子句中过滤掉该组?例如,如果有以下 table:
我想按 id1
和 id2
分组并排除其中至少一行在 someText
列中具有 "value" 的任何组?因此,在我的结果中,应排除组 (1,1),但应返回 (1,2)、(2,1) 和 (2,3)。最好,我正在寻找使用 HAVING 子句的解决方案(这只是一个说明问题的简单示例 - 但我正在处理大型查询))
您可以将 group by
和 having
与条件表达式一起使用:
select id1, id2
from mytable
group by id1, id2
having max(someText = 'value') = 0