选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

BIT_AND 函数

聚焦模式
BIT_AND 函数 - Amazon Redshift

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

如果所有值中没有设置为 1 的位,则 BIT_AND 函数将返回结果 0。如果所有值中的一个或多个位设置为 1,该函数返回一个整数值。此整数是对应于这些位的二进制值的数字。

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

整数 二进制值
3 11
7 111
10 1010
22 10110

针对此数据集的 BIT_AND 操作发现所有位仅在倒数第二的位置设置为 1。结果是一个二进制值 00000010,它表示整数值 2。因此,BIT_AND 函数返回 2

语法

BIT_AND ( [DISTINCT | ALL] expression )

参数

expression

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

DISTINCT | ALL

利用参数 DISTINCT,该函数可在计算结果之前消除指定表达式的所有重复值。利用参数 ALL,该函数可保留所有重复值。ALL 是默认值。有关更多信息,请参阅 按位聚合的 DISTINCT 支持

示例

假定有意义的商业信息存储在整数列中,您可使用按位函数提取和聚合该信息。以下查询将 BIT_AND 函数应用于名为“USERLIKES”的表的 LIKES 列中并按 CITY 列对结果进行分组。

select city, bit_and(likes) from userlikes group by city order by city; city | bit_and --------------+--------- Los Angeles | 0 Sacramento | 0 San Francisco | 0 San Jose | 64 Santa Barbara | 192 (5 rows)

您可以将这些结果解释如下:

  • Santa Barbara 的整数值 192 转换为二进制值 11000000。换句话说,此城市中的所有用户都喜欢运动和戏剧,但并非所有用户都喜欢任何其他类型的活动。

  • 整数 64 转换为 01000000。因此,对于圣荷西的所有用户来说,他们喜欢的唯一活动类型是戏剧。

  • 其他三个城市的值 0 表示这些城市中的所有用户没有共同的“喜好”。

下一主题:

BIT_OR

上一主题:

按位聚合函数

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。