仅当不存在具有满足条件的值的行时才为列选择值

问题描述

我有一个存储 http 获取日志的表,假设我们有两列:fetch_urlsuccess。一些示例行:

success   fetch_url
TRUE      A
FALSE     A
FALSE     B
FALSE     B
FALSE     C

如您所见,A 至少有一次获取成功,但 BC 没有一次获取成功。我如何编写一个查询,只选择那些从未成功的 fetch url?即:

fetch_url
B
C

我正在尝试使用 GROUP BYCOUNTHAVING 的某种组合,但我无法得到正确的查询

解决方法

您可以使用聚合:

select fetch_url
from t
group by fetch_url
having sum(case when sucess = 'TRUE' then 1 else 0 end) = 0;