Rotverschiebte Any_Value -Funktion

Rotverschiebte Any_Value -Funktion
Rotverschiebung Any_Value ist eine Funktion, die jeden Wert von Werten der Eingabexpression nicht deterministisch zurückgibt. Es nimmt mehrere Werte als Eingabe an, wählt zufällig einen dieser Werte aus und gibt sie als Antwort zurück. Wenn Sie Nullwerte an die Funktion Any_Value übergeben, gibt es einen Nullwert als Antwort zurück. In diesem Blog werden wir verschiedene Anwendungsfälle verwenden, die die Funktion Any_Value verwenden, um zufällige Ausgabe aus den Tabellen zu erhalten.

Syntax von Any_Value -Funktion

Im Folgenden wird die Syntax die Funktion Any_Value in Amazon Redshift verwendet:

Any_Value ([bestimmt | alle] Ausdruck)

Im Folgenden finden Sie die Beschreibung der Parameter und Optionen, die an die Funktion rotverschiebend übergeben wurden. Value -Funktion:

Unterschiedlich | ALLE

Geben Sie beim Ausführen der Funktion "Any_Value. Wenn wir die angeben UNTERSCHEIDBAR Das Schlüsselwort, die Funktion Any_Value, entzieht doppelte Werte aus dem Eingabefreundlichkeit und gibt dann den Zufallswert aus diesen eindeutigen Ausdrücken zurück.

Andererseits, wenn die ALLE Das Schlüsselwort wird verwendet. Die Funktion Any_Value gibt den zufälligen Ausdruck aus allen Eingangsausdrücken zurück.

Ausdruck

Es ist die Zielspalte oder der Ausdruck, auf dem die Funktion Any_Value arbeitet und zufällig einen Wert erhält. Es kann die Daten der folgenden Datentypen enthalten:

  1. DOPPELTE GENAUIGKEIT
  2. REAL
  3. Timetz
  4. ERDKUNDE
  5. DEZIMAL
  6. Hllsketch
  7. GEOMETRIE
  8. GANZE ZAHL
  9. Smallint
  10. Zeitstempel
  11. Varchar
  12. Timestamptz
  13. Bigint
  14. SUPER
  15. Varbyte
  16. Boolean
  17. ZEIT
  18. VERKOHLEN
  19. DATUM

Beispiele für Any_Value -Funktion

Dieser Abschnitt des Artikels enthält verschiedene Beispiele der Rotverschiebung angemeldet, um sie gründlich auszuarbeiten.

Einrichten der Umgebung

Bevor wir uns mit verschiedenen Beispielen befassen, müssen wir eine Tabelle mit verschiedenen Spalten erstellen. Die folgende Abfrage kann eine Tabelle im Rotverschiebungscluster mit den folgenden Attributen erstellen:

  • Nutzername
  • Angestellten ID
  • Passwort
  • Stadt
  • Geburtsdatum
Tabelle erstellen user_data (
Mitarbeiter der Mitarbeiter der Integer Primärschlüssel,
Benutzername Varchar (200),
Passwort varchar (200),
City Varchar (200),
DATE_OF_BIRTH DATUM
)

Jetzt werden wir einige Beispieldaten in die Tabelle user_data des Rotverschiebungsclusters einfügen. Verwenden Sie die Abfrage einfügen, um die Daten mithilfe der folgenden Abfrage hinzuzufügen:

In user_data einfügen (
Angestellten ID,
Nutzername,
Passwort,
Stadt,
Geburtsdatum
) WERTE (
1,
"Benutzer-1",
"Pass-1",
'City-1',
"1997-02-27"
)

Führen Sie diese Abfrage mehrmals aus, indem Sie die Werte ändern, um die Daten mehrerer Benutzer zu speichern. Jetzt werden wir die Funktion Any_Value auf diese Tabelle anwenden.

Verwenden Sie nach dem Einsetzen der Daten mehrerer Benutzer die folgende Abfrage, um alle Daten aufzulisten:

Wählen Sie * aus user_data;

Anwenden eines beliebigen Ganzzahl -Datentyps anwenden

In diesem Abschnitt werden wir den Any_Value auf den Ganzzahl -Datentyp oder den anwenden Angestellten ID Säule der Benutzerdaten Tabelle, die wir im vorherigen Abschnitt erstellt haben.

Zu diesem Zweck kann die folgende Abfrage verwendet werden, um die Mitarbeiter -ID eines jeden Mitarbeiter zu erhalten:

Wählen Sie Any_Value (Employee_ID) als Employee_ID von user_data;

Die vorherige Abfrage wählt einen beliebigen Wert aus dem aus Angestellten ID Spalte und kehrt als Ausgabe dieser Abfrage zurück. Die vorherige Abbildung gab den Mitarbeiter des zufälligen Benutzers aus dem zurück Benutzerdaten Tisch.

Anwenden eines Any_Value auf String -Datentyp

Genau wie wir die Funktion Any_Value auf den Ganzzahl -Datentyp angewendet haben, kann sie auch auf den String -Datentyp angewendet werden. Bei der Anwendung auf das Feld String Datentyp wählt die Funktion Any_Value nach dem Zufallsprinzip eines der Daten aus und gibt sie als Antwort zurück.

Um einen zufälligen Wert aus dem zu erhalten Nutzername (String) Feld, führen Sie die folgende Abfrage auf dem Red -Shift -Cluster aus:

Wählen Sie Any_Value (Benutzername) als Benutzername von user_data;

Es wird zufällig zurückgeben Nutzername Eintrag aus dem Benutzerdaten Tisch.

Anwenden eines beliebigen Datentyps für Datum anwenden

Wir können auch einen zufälligen Wert aus dem Feld erhalten, der mehrere Einträge vom Datentyp des Datums enthält. Wenn die Funktion "Any_Value" auf die mehreren Werte des Datumsartyps angewendet wird, wählt sie zufällig einen Eintrag aus und gibt ihn als Antwort zurück.

A Geburtsdatum eines zufälligen Benutzers aus dem Benutzerdaten Tabelle, die folgende Abfrage im Rotverschiebungscluster ausführen:

Wählen Sie Any_Value (DATE_OF_BIRTH) AS DATE_OF_BIRTH AUS UMSER_DATA;

Diese Abfrage erhält zufällig Geburtsdatum aus der Tabelle und geben Sie es als Antwort zurück.

Any_Value -Funktion mithilfe der Gruppe

Wir können die Funktion Any_Value verwenden, um zu vereinfachen und zu optimieren GRUPPIERE NACH Aussagen Fortschritt. Ein häufiges Problem, das bei vielen Abfragen auftritt.

Wählen Sie Kunde.Id, Kunde.Name, Summe (Bestellungen.Wert)
Vom Kunden
Schließen Sie den Kunden Bestellungen an.ID = Bestellungen.Kundennummer
Gruppe von Kunden.Id, Kunde.Name;

Im vorherigen Abfrageattribut muss der Kundenname durch Klausel zur Beteiligung innerhalb der Konsequenz in der Gruppe sein. Dies ist unerwünscht und macht die Berechnung kompliziert und träge.

Um die Abfrage zu verbessern und es schneller auszuführen, können Sie die vorherige Abfrage mit der Funktion "Any_Value" implementieren.

Wählen Sie Kunde.ID, Any_Value (Kunde.Name), Summe (Bestellungen.Wert)
Vom Kunden
Schließen Sie den Kunden Bestellungen an.ID = Bestellungen.Kundennummer
Gruppe von Kunden.Ausweis;

Abschluss

Any_Value ist eine Funktion, die mehrere Werte als Eingabe nimmt und einen Zufallswert aus diesen Eingabewerten zurückgibt. Es wählt den Ausgang aus den Eingangsausdrücken nicht deterministisch aus. Wenn der Eingangsausdruck in die Funktion Any_Value nicht zu einer Zeile führt, ist die Ausgabe der Funktion ein Nullwert. In diesem Blog werden die verschiedenen Anwendungsfälle beschrieben, um die Funktion Any_Value zu implementieren, um die zufällige Ausgabe zu erhalten.