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à.
La funzione BIT_AND esegue operazioni AND 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.
La funzione BIT_AND restituisce un risultato di 0
se nessuno dei bit è impostato su 1 in tutti i valori. Se uno o più bit è impostato su 1 in tutti i valori, la funzione restituisce un valore intero. Questo intero è il numero che corrisponde al valore binario per quei bit.
Ad esempio, una tabella contiene quattro valori interni 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 |
Un'operazione BIT_AND su questo set di dati rileva che tutti i bit sono impostati solo nella posizione. 1
second-to-last Il risultato è un valore binario di 00000010
, che rappresenta il valore intero 2
. Di conseguenza, la funzione BIT_AND restituisce 2
.
Sintassi
BIT_AND ( [DISTINCT | ALL] expression )
Argomenti
- expression
-
L'espressione o colonna di destinazione su cui viene eseguita la funzione. Questa espressione deve avere un tipo di dati INT o INT2. INT8 La funzione restituisce un INT o un tipo di INT8 dati equivalente. INT2
- 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.
Esempi
Dato che le informazioni aziendali significative sono memorizzate in colonne di numeri interi, è possibile utilizzare le funzioni bit-wise per estrarre e aggregare tali informazioni. La seguente query applica la funzione BIT_AND alla colonna LIKES in una tabella denominata USERLIKES e raggruppa i risultati in base alla colonna 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)
Questi risultati possono essere interpretati nel modo seguente:
-
Il valore intero
192
per Santa Barbara si traduce nel valore binario11000000
. In altre parole, a tutti gli utenti di questa città piacciono lo sport e il teatro, ma non a tutti gli utenti piacciono altri tipi di evento. -
Il numero intero
64
si traduce in01000000
. Pertanto, per gli utenti a San Jose, l'unico tipo di evento che piace a tutti è il teatro. -
I valori di
0
per le altre tre città indica che nessun "like" di gradimento è condiviso da tutti gli utenti in quelle città.