首页 > 解决方案 > 对 Presto 中的所有按值分组的值执行按位运算

问题描述

我需要BITWISE_OR对所有按值分组的内容执行 a 。
比如说,我在分组依据中的值是:100、010 和 110。我需要计算“100 或 010 或 110”,即 110。

所以我想做类似的事情:select col1, array_agg(col2) from table group by col1,然后应用于bitwise_or数组中的所有 col2 值。有一个 function bitwise_or_agg,但它不适用于数组。

任何帮助表示赞赏!

标签: sqlaggregate-functionsprestotrinobitwise-or

解决方案


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

推荐阅读