

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://www.amazonaws.cn/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# BIT\$1OR 函数
BIT\$1OR

BIT\$1OR 函数会对单个整数列或表达式中的所有值运行按位 OR 运算。此函数会聚合与表达式中的每个整数值对应的每个二进制值的每个位。

例如，假设您的表中的一个列包含 4 个整数值：3、7、10 和 22。这些整数用二进制格式表示，如下所示。

[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/redshift/latest/dg/r_BIT_OR.html)

如果将 BIT\$1OR 函数应用于整数值集合，则该操作将查找 `1` 在每个位置找到的任何值。在这种情况下，`1` 存在于至少一个值的后 5 个位置，从而生成二进制结果 `00011111`；因此，该函数将返回 `31`（或 `16 + 8 + 4 + 2 + 1`）。

## 语法
语法

```
BIT_OR ( [DISTINCT | ALL] expression )
```

## 参数
参数

 *expression*   
对其执行函数的目标列或表达式。此表达式必须具有 INT、INT2 或 INT8 数据类型。该函数返回等同的 INT、INT2 或 INT8 数据类型。

DISTINCT \$1 ALL  
利用参数 DISTINCT，该函数可在计算结果之前消除指定表达式的所有重复值。利用参数 ALL，该函数可保留所有重复值。ALL 是默认值。有关更多信息，请参阅 [按位聚合的 DISTINCT 支持](c_bitwise_aggregate_functions.md#distinct-support-for-bit-wise-aggregations)。

## 示例
示例

以下查询会将 BIT\$1OR 函数应用于名为“USERLIKES”的表的 LIKES 列并按 CITY 列对结果进行分组。

```
select city, bit_or(likes) from userlikes group by city
order by city;
city          | bit_or
--------------+--------
Los Angeles   |    127
Sacramento    |    255
San Francisco |    255
San Jose      |    255
Santa Barbara |    255
(5 rows)
```

对于所列的四个城市，至少有一个用户喜欢全部活动类型 (`255=11111111`)。对于洛杉矶，至少有一个用户喜欢除运动之外的所有活动类型 (`127=01111111`)。