Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
Die Funktion BIT_AND
Die BIT_AND-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.
Die Funktion BIT_AND gibt das Ergebnis 0 zurück, wenn für keinen der Werte ein Bit auf 1 festgelegt ist. Wenn für einen der Werte mindestens ein Bit auf 1 festgelegt ist, gibt die Funktion einen Ganzzahlwert zurück. Diese Ganzzahl ist die Nummer, die dem Binärwert für diese Bits entspricht.
Beispielsweise enthält eine Tabelle vier Ganzzahlwerte in einer Spalte: 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 |
Eine für diesen Datensatz ausgeführte BIT_AND-Operation stellt fest, dass nur in der vorletzten Position alle Bits auf 1 festgelegt sind. Das Ergebnis ist der Binärwert 00000010, der für den Ganzzahlwert 2 steht. Daher gibt die Funktion BIT_AND zurück 2.
Syntax
BIT_AND ( [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.
Beispiele
Da relevante geschäftliche Informationen in Ganzzahlspalten gespeichert werden, können Sie bitweise Funktionen verwenden, um diese Informationen zu extrahieren und zu aggregieren. Die folgende Abfrage wendet die Funktion BIT_AND auf die Spalte LIKES in einer Tabelle namens USERLIKES an und gruppiert die Ergebnisse anhand der Spalte 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)
Diese Ergebnisse können wie folgt interpretiert werden:
-
Der Ganzzahlwert
192für Santa Barbara wird in den Binärwert11000000übersetzt. Mit anderen Worten, allen Benutzern in dieser Stadt gefallen Sport und Theater. Nicht allen Benutzern gefallen jedoch auch andere Arten von Veranstaltungen. -
Die Ganzzahl
64entspricht01000000. Es gibt also nur eine Art von Veranstaltung, die allen Benutzern in San Jose gefällt: Theater. -
Der Wert
0für die anderen drei Städte zeigt an, dass es keine Veranstaltungen gibt, die allen Benutzern in diesen Städten gefallen.