Die Funktion BIT_OR - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die Funktion BIT_OR

Die BIT_OR-Funktion führt bitweise OR-Operationen für alle Werte in einer einzigen Ganzzahlspalte bzw. in einem einzigen Ganzzahlausdruck aus. Diese Funktion aggregiert jedes Bit jedes Binärwerts, das jedem Ganzzahlwert im Ausdruck entspricht.

Nehmen wir an, dass eine Tabelle vier Ganzzahlwerte in einer Spalte enthält: 3, 7, 10 und 22. Diese Ganzzahlen werden wie folgt in binärer Form dargestellt.

Ganzzahl Binärwert
3 11
7 111
10 1010
22 10110

Wenn Sie auf den Satz von Ganzzahlwerten die Funktion BIT_OR anwenden, sucht die Operation nach jedem Wert, der in jeder Position eine 1 enthält. In diesem Fall ist 1 in den letzten fünf Positionen mindestens eines der Werte enthalten, was zu einem Binärergebnis von 00011111 führt. Daher gibt die Funktion 31 (oder 16 + 8 + 4 + 2 + 1) zurück.

Syntax

BIT_OR ( [DISTINCT | ALL] expression )

Argumente

Ausdruck

Die Zielspalte oder der Ausdruck, für die/den die Funktion ausgeführt wird. Dieser Ausdruck muss den Datentyp INT, INT2 oder INT8 haben. Die Funktion gibt einen entsprechenden INT-, INT2- oder INT8-Datentyp zurück.

DISTINCT | ALL

Mit dem Argument DISTINCT beseitigt die Funktion alle duplizierten Werte für den angegebenen Ausdruck, bevor das Ergebnis berechnet wird. Mit dem Argument ALL behält die Funktion alle duplizierten Werte. ALL ist das Standardargument. Weitere Informationen finden Sie unter DISTINCT-Unterstützung für bitweise Aggregationen.

Beispiel

Die folgende Abfrage wendet die Funktion BIT_OR auf die Spalte LIKES in einer Tabelle namens USERLIKES an und gruppiert die Ergebnisse anhand der Spalte 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)

Mindestens einem Benutzer in den vier aufgelisteten Städten gefallen alle Arten von Veranstaltungen (255=11111111). Mindestens einem Benutzer in Los Angeles gefallen alle Arten von Veranstaltungen außer Sport (127=01111111).