问题描述
我需要对按值分组的所有内容执行 BITWISE_OR
。
比如说,我在 group by 中的值是:100、010 和 110。我需要计算“100 或 010 或 110”,即 110。
所以我想做一些类似的事情:select col1,array_agg(col2) from table group by col1
,然后在数组中的所有 col2 值上应用 bitwise_or
。有一个函数 bitwise_or_agg
,但它不适用于数组。
感谢任何帮助!
解决方法
bitwise_or_agg(x)
是一个聚合函数(返回所有输入值的按位“或”),使用它代替(或连同)array_agg:
select col1,array_agg(col2) as my_array,bitwise_or_agg(col2) as my_array_bitwise_or
from table group by col1