Fonction BIT_AND - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fonction BIT_AND

La fonction BIT_AND exécute des opérations AND bit par bit sur toutes les valeurs d’une colonne ou expression d’entiers. Ces fonctions regroupent chaque bit de chaque valeur binaire correspondant à chaque valeur de nombre entier de l’expression.

La fonction BIT_AND renvoie un résultat de 0 si aucun des bits n’est défini sur 1 dans l’ensemble des valeurs. Si un ou plusieurs bits est défini sur 1 dans toutes les valeurs, la fonction renvoie une valeur de nombre entier. Ce nombre entier est le chiffre qui correspond à la valeur binaire de ces bits.

Par exemple, une table contient quatre valeurs de nombre entier dans une colonne : 3, 7, 10 et 22. Ces nombres entiers sont représentés sous la forme binaire suivante :

Entier Valeur binaire
3 11
7 111
10 1010
22 10110

Une opération BIT_AND sur cet ensemble de données détecte que tous les bits sont définis sur 1 la second-to-last position uniquement. Le résultat est une valeur binaire de 00000010, qui représente la valeur d’entier 2. Par conséquent, la fonction BIT_AND renvoie 2.

Syntaxe

BIT_AND ( [DISTINCT | ALL] expression )

Arguments

expression

Colonne cible ou expression sur laquelle la fonction opère. Cette expression doit comporter un type de données INT, INT2 ou INT8. La fonction renvoie un type de données INT, INT2 ou INT8 équivalent.

DISTINCT | ALL

Avec l’argument DISTINCT, la fonction supprime toutes les valeurs en double de l’expression spécifiée avant de calculer le résultat. Avec l’argument ALL, la fonction conserve toutes les valeurs en double. La valeur par défaut est ALL. Pour plus d'informations, consultez Prise en charge de la fonction DISTINCT pour les agrégations bit par bit.

Exemples

Étant donné que des informations importantes sur l’entreprise sont stockées dans les colonnes de nombres entiers, vous pouvez utiliser des fonctions bit par bit pour extraire et regrouper ces informations. La requête suivante applique la fonction BIT_AND à la colonne LIKES dans une table appelée USERLIKES et regroupe les résultats en fonction de la colonne 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)

Vous pouvez interpréter ces résultats comme suit :

  • La valeur de nombre entier 192 de Santa Barbara se traduit par la valeur binaire 11000000. Autrement dit, tous les utilisateurs de cette ville aiment le sport et le théâtre, mais tous les utilisateurs n’aiment pas un tout autre type d’événement.

  • Le nombre entier 64 se traduit par 01000000. Ainsi, pour les utilisateurs de San Jose, le seul type d’événement qu’ils aiment tous est le théâtre.

  • Les valeurs de 0 des trois autres villes indiquent qu’aucun « J’aime » n’est partagé par tous les utilisateurs de ces villes.