

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# BIT\$1AND 函數
<a name="r_BIT_AND"></a>

BIT\$1AND 函數會對單一整數欄或表達式中的所有值執行位元 AND 操作。此函數會彙總每一個二進位值 (對應於表達式中的每一個整數值) 的每一個位元。

如果所有值之中沒有任何位元設為 1，BIT\$1AND 函數會傳回結果 `0`。如果所有值之中有一或多個位元設為 1，此函數會傳回整數值。此整數是對應於那些位元的二進位值的數字。

例如，資料表有一欄包含四個整數值：3、7、10 及 22。這些整數以二進位格式表示如下：

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/redshift/latest/dg/r_BIT_AND.html)

此資料集的 BIT\$1AND 操作發現所有位元只在倒數第二個位置設為 `1`。結果為 `00000010` 的二進位值，代表整數值 `2`。因此，BIT\$1AND 函數會傳回 `2`。

## 語法
<a name="r_BIT_AND-synopsis"></a>

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

## 引數
<a name="r_BIT_AND-arguments"></a>

 *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)。

## 範例
<a name="r_bit_end_example"></a>

由於整數欄中儲存有意義的商業資訊，您可以使用位元函數來擷取和彙總該資訊。下列查詢將 BIT\$1AND 函數套用至名為 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`。因此，對於 San Jose 中的使用者而言，他們全部都喜歡的一種活動只有戲劇。
+ 其他三個城市的值為 `0`，表示那些城市的所有使用者沒有共同的「愛好」。