如何获得组的一列的所有值的或乘积

How to get OR product of all values of a column of group

考虑以下数据

 user_id | group_id
---------------------------
   1     |   1
   1     |   2
   1     |   4
   2     |   1
   2     |   8

假设 table 的名字是 user_group。我想要以下输出

 user_id  |  groups // binary or operation on all values of a user
--------------------
 1        |  7      // i.e.  1 | 2 | 4 = 7
 2        |  9      // i.e.  1 | 8 = 9

到目前为止,我可以获得所有 group_id 的数组。但是无法获得该数组中所有值的 乘积。

user_id   |  groups
--------------------   
  1       |  {1, 2, 4}
  2       |  {1, 8}

查询:select user_id, array_agg(group_id) from user_group group by user_id

你可以做到

select user_id, bit_or(group_id) from user_group group by user_id;

似乎没有任何理由在这里使用数组聚合。