PostgreSQL如何对结果进行分组,使所有行都必须为true



在PostgreSQL中,我有一个查询可以返回1行或多行布尔值。如果所有行都为true,我如何对该结果集运行选择查询以获得返回true的单个布尔值?如果此结果集中的一行或多行为false,则返回false。

您正在描述布尔聚合,Postgres为其提供了内置函数,如bool_or()bool_and():

select bool_and(mybool) as myresult
from (
--- your query, that returns a boolean column called "mybool"
) t

使用not exists:可能会更快

select not exists (select 1
from <your query>
where not mybool
)

相关内容

  • 没有找到相关文章

最新更新