Select 列的值,仅当没有具有满足条件的值的行时
Select values for a column only if there are no rows with that value that satisfy a condition
我有一个 table 存储 http 提取的日志,假设我们有两列:fetch_url
和 success
。一些示例行:
success fetch_url
TRUE A
FALSE A
FALSE B
FALSE B
FALSE C
如您所见,A
至少有一次提取成功,但 B
或 C
没有一次提取成功。我如何编写一个查询,该查询将 select 仅获取那些从未成功过的网址?即:
fetch_url
B
C
我正在尝试使用 GROUP BY
、COUNT
和 HAVING
的某种组合,但我无法获得正确的查询。
您可以使用聚合:
select fetch_url
from t
group by fetch_url
having sum(case when sucess = 'TRUE' then 1 else 0 end) = 0;
我有一个 table 存储 http 提取的日志,假设我们有两列:fetch_url
和 success
。一些示例行:
success fetch_url
TRUE A
FALSE A
FALSE B
FALSE B
FALSE C
如您所见,A
至少有一次提取成功,但 B
或 C
没有一次提取成功。我如何编写一个查询,该查询将 select 仅获取那些从未成功过的网址?即:
fetch_url
B
C
我正在尝试使用 GROUP BY
、COUNT
和 HAVING
的某种组合,但我无法获得正确的查询。
您可以使用聚合:
select fetch_url
from t
group by fetch_url
having sum(case when sucess = 'TRUE' then 1 else 0 end) = 0;