首页 > 解决方案 > 使用 GROUPBY 对 Bytea 进行逻辑或

问题描述

我有以下带有 2 列的 Postgres 表和以下数据:

building    mask
blue        0001
blue        1000
blue        1100
red         0110
white       1001
white       0011

我想按颜色对我的建筑物进行分组,并在我的掩码(bytea 类型)上逐位进行 OR 以获得以下结果:

building    mask
blue        1101
red         0110
white       1011

有没有办法通过查询来实现这一点,或者我应该在查询后使用 javascript 来组合?

标签: sqlpostgresql

解决方案


您应该能够使用聚合功能bit_or()

select building, bit_or(mask)
from t
group by building;

推荐阅读