在PostgreSQL中选择或布尔聚合函数

goh*_*gle 7 sql postgresql

我想问你在PostgreSQL中如何使用select或aggregate函数检查表的列中的一个布尔值是否为真?

谢谢.

Dmy*_*iak 12

很少有具体的布尔聚合函数,你可以使用:bool_and,bool_or,every.

在您的特定情况下,您需要bool_or汇总.
查询就像这样简单:

SELECT bool_or(my_column) FROM my_table
Run Code Online (Sandbox Code Playgroud)


Tho*_*ler 5

您不能使用SUM(DATA),但可以将值(如下所示)强制转换为int(0 = false,1 = true)。但是,使用EXISTS(...)可能会更有效,特别是如果您对TRUE值的数量不感兴趣的话。

create table test(data boolean);
insert into test values(true), (false);
select sum(cast(data as int)) from test;
select exists(select * from test where data);
Run Code Online (Sandbox Code Playgroud)