对 Presto 中按值分组的所有内容执行按位运算

问题描述

我需要对按值分组的所有内容执行 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...