PostgreSQL为聚合变量获取第一个True值

时间:2019-05-28 06:40:14

标签: postgresql aggregate-functions

假设我有下表。请考虑所有三个版本:

版本1:

Aggr_ID     ID      boolean_value
123         123     False
123         124     True        
123         125     False           
123         126     True

版本2:

Aggr_ID     ID      boolean_value
123         123     True
123         124     False       
123         125     False           
123         126     False

版本3:

Aggr_ID     ID      boolean_value
123         123     False
123         124     False       
123         125     False           
123         126     False

我想得到的是情况1和2的下表:

Aggr_ID     boolean_value
123         True

和下表中的案例编号。 3:

Aggr_ID     boolean_value
123         False

这个想法是,如果True列中至少有一个boolean_value,则汇总ID应该与True关联。

我真的不知道该如何解决这个问题,所以请原谅我缺少代码。

1 个答案:

答案 0 :(得分:1)

group by Aggr_ID时,您可以使用bool_or()

select 
  Aggr_ID, 
  bool_or(boolean_value) boolean_value
from tablename
group by Aggr_ID