BIT_ 或函數 - Amazon Redshift

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

BIT_ 或函數

該 BIT _OR 函數對單個整數列或表達式中的所有值運行按位或運算。此函數會彙總每一個二進位值 (對應於表達式中的每一個整數值) 的每一個位元。

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

Integer 二進位值
3 11
7 111
10 1010
22 10110

如果您將 BIT _OR 函數套用至整數值集,則作業會尋找在每個位置找到 a 1 的任何值。在此案例中,至少一個值的最後五個位置有 1,於是產生二進位結果 00011111;因此,函數傳回 31 (亦即 16 + 8 + 4 + 2 + 1)。

語法

BIT_OR ( [DISTINCT | ALL] expression )

引數

expression

函數運算的目標欄或表達式。此運算式必須具有INTINT2、或INT8資料類型。函數會傳回對等INTINT2、或INT8資料類型。

DISTINCT | ALL

使用引數時DISTINCT,函數會在計算結果之前消除指定運算式的所有重複值。使用引數時ALL,函數會保留所有重複的值。ALL為預設值。如需詳細資訊,請參閱DISTINCT支持按位聚合

範例

下列查詢會將 BIT _OR 函式套用至名為的LIKES資料表中的資料行,USERLIKES並依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)。以 Los Angeles 來說,至少有一個使用者喜歡所有活動類型,但運動除外 (127=01111111)。