簡體   English   中英

PostgreSQL 中的選擇或布爾聚合函數

[英]Select or boolean aggregate function in PostgreSQL

我想問你如何在 PostgreSQL 中使用選擇或聚合函數檢查表列中的布爾值之一是否為真?

您可以使用一些特定於布爾值的聚合函數bool_andbool_orevery

在您的特定情況下,您需要bool_or聚合。
查詢就這么簡單:

SELECT bool_or(my_column) FROM my_table

您不能使用 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);

要知道是否至少有 1 個真值:

select sum(cast(data as int)) > 0

這比exists解決方案更好,因為它可以嵌入到更大的查詢中,可能包含group by和其他where子句

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM