如何获得组的一列的所有值的或乘积
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;
似乎没有任何理由在这里使用数组聚合。
考虑以下数据
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;
似乎没有任何理由在这里使用数组聚合。