View a markdown version of this page

Funzione BIT_OR - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dalla Patch 198. Le UDF Python esistenti continueranno a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Funzione BIT_OR

La funzione BIT_OR esegue operazioni OR bit per bit su tutti i valori di una singola colonna o espressione intera. Questa funzione aggrega ogni bit di ciascun valore binario che corrisponde a ciascun valore intero nell'espressione.

Ad esempio, si supponga che la propria tabella contenga quattro valori interi in una colonna: 3, 7, 10, e 22. Questi numeri interi sono rappresentati in forma binaria nel seguente modo:

Numero intero Valore binario
3 11
7 111
10 1010
22 10110

Se si applica la funzione BIT_OR all'insieme di valori interi, l'operazione cerca qualsiasi valore in cui 1 è presente in ciascuna posizione. In questo caso, un 1 esiste nelle ultime cinque posizioni per almeno uno dei valori, ottenendo un risultato binario di 00011111; pertanto, la funzione restituisce 31 (oppure 16 + 8 + 4 + 2 + 1).

Sintassi

BIT_OR ( [DISTINCT | ALL] expression )

Arguments (Argomenti)

expression

L'espressione o colonna di destinazione su cui viene eseguita la funzione. Questa espressione deve avere un tipo di dati INT, INT2 o INT8. La funzione restituisce un tipo di dati INT, INT2 o INT8 equivalente.

DISTINCT | ALL

Con l'argomento DISTINCT, la funzione elimina tutti i valori duplicati per l'espressione specificata prima di calcolare il risultato. Con l'argomento ALL, la funzione mantiene tutti i valori duplicati. ALL è il valore predefinito. Per ulteriori informazioni, consultare Supporto DISTINCT per le aggregazioni bit per bit.

Esempio

La seguente query applica la funzione BIT_OR alla colonna LIKES in una tabella denominata USERLIKES e raggruppa i risultati in base alla colonna 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)

Per quattro delle città elencate, tutti i tipi di evento piacciono ad almeno un utente (255=11111111). Per Los Angeles, tutti i tipi di evento fatta eccezione per gli sport piacciono ad almeno un utente (127=01111111).