Redshift Listagg -Funktion

Redshift Listagg -Funktion
Amazon RedShift ist ein serverloser Data Warehousing -Dienst von AWS, um Online -Analyseverarbeitung (OLAP) auszuführen,. Es ist sehr effizient und ermöglicht es, anhand der parallelen Rechenknoten an komplexen Abfragen und Big -Data -Problemen zu arbeiten. Da RedShift in der SQL-basierten Datenbank ausgelegt ist, können die Benutzer viele SQL-Funktionen verwenden und über ihre eigenen integrierten Funktionen verfügen. In diesem Artikel werden Sie über die Rotverschiebung erleuchtet sein Listagg Funktionieren Sie, um die Einträge verschiedener Zeilen zu verkettet, um eine Zeichenfolge zu bilden.

Wie der Name definiert, wird diese Funktion verwendet, um die Liste zu aggregieren. Oder in einfacheren Worten wird es verwendet, um Einträge verschiedener Zeilen in einer Tabelle zu verkettet, um eine Zeichenfolge zu bilden. Sicherlich ist es schwierig. Aber zuerst springen wir in seine Syntax und erkunden wir mehr darüber.

Syntax zur Verwendung der Listagg -Funktion

Der Listagg Die Funktion in Rotverschiebung kann durch Befolgen der angegebenen Syntax verwendet werden.

Wählen Sie Listagg aus (verschieden , ) innerhalb der Gruppe (bestellen nach ) aus

Die obige Syntax zeigt die erforderlichen Attribute für die Verwendung der Listagg -Funktion an.

  • Spaltenname: Die Spalte in der Rotverschiebungstabelle, auf der Sie diese Funktion verwenden werden.
  • Abgrenzer: Dies ist einfach das Listentrennzeichen, das Sie verwenden möchten. In den meisten Fällen wird Komma (,) oder Semikolon (;) als Trennzeichen verwendet. Dies ist optional zu erwähnen und standardmäßig ist sein Wert null.
  • Bestellliste: Dies wird verwendet, um zu definieren, wie Sie die Werte sortieren möchten.
  • Tabellenname: Dies ist nur die Datenbanktabelle, in der Sie all dies arbeiten.

Verwenden der Listagg -Funktion

In diesem Abschnitt zeigen wir Ihnen einige praktische Anwendungsfälle und Beispiele, um kurz zu erklären, wie die Listagg -Funktion in Rotverschiebung verwendet werden kann, um das gewünschte Ergebnis zu erzielen.

Anwendungsfall 1

Zunächst werden wir das einfachste Beispiel nehmen, um Ihnen zu zeigen, wie die Listagg -Funktion in Rotverschiebung funktioniert. Angenommen, Sie haben eine Datenbanktabelle mit dem Namen it_team Eine einzelne Spalte für die Namen von Personen, die in dieser Abteilung arbeiten.

Jetzt möchten Sie einfach alle Namen in einer einzigen Zeichenfolge präsentieren, die von Commas getrennt ist. Zu diesem Zweck verwenden Sie die Listagg -Funktion auf folgende Weise.

Wählen Sie Listagg (Name, ',') aus der Organisation.it_team

In der Ausgabe erhalten Sie alle Werte aus der Spalte Name in einer einzelnen Zeile in Form einer Zeichenfolge.

Sie können also sehen, wie einfach es ist, die Listagg -Funktion zu verwenden und die Zeilen einer Tabelle in Rotverschiebung zu verkettet.

Anwendungsfall 2

Nehmen Sie einen Fall, in dem Sie alle Teamleiter finden möchten, die an verschiedenen Projekten in Ihrer Organisation arbeiten. Was Sie haben, ist eine Tabelle mit dem Namen dev_team Dies zeigt alle Projekte und Teamleiter in verschiedenen Kolumnen.

Jetzt gibt es nur wenige Fälle, in denen eine einzelne Person als Teamleiter für mehr als ein Projekt arbeitet, aber Sie möchten nur jeden Namen nur einmal aufnehmen. Zu diesem Zweck müssen wir die verwenden UNTERSCHEIDBAR Option mit der Listagg -Funktion verfügbar, um die wiederholten Werte zu ignorieren.

Wählen Sie Listagg (bestimmte Team_lead, '|') als Team_leaders
von Organisation.dev_team

Sie sehen UNTERSCHEIDBAR Möglichkeit. Darüber hinaus können Sie sehen, dass der Name der Ausgangsspalte in die Spalte geändert wird Gruppenführer. Anstelle des Standardspaltennamens, um das Verständnis der Daten zu verbessern. Der hier verwendete Trennzeichen ist ein Rohrsymbol, um die Namen der Leads zu trennen.

Anwendungsfall 3

Angenommen, Ihr Senior hat Ihnen die Aufgabe zugewiesen, die Projekte unter jedem Teamleiter herauszufinden und sie in einer einzigen Zeichenfolge zu präsentieren. Betrachten wir noch einmal das dev_team Tisch.

Für eine eins-zu-Eins-Beziehung zwischen Projekten und Teamleitern wäre diese Aufgabe einfach. In diesem Fall ist ersichtlich, dass es unter einigen Teamleitern noch mehr als ein Projekt gibt. Dazu müssen Sie eine neue Rotverschiebungsanfrage erstellen, wie unten gezeigt.

Wählen Sie Team_Lead,
Listagg (Project_name, ',') als Projekte
von Organisation.dev_team
Gruppe von Team_lead

In dieser Abfrage wird die Gesamtfunktion auf die angewendet Projektname Spalte. Es hat auch einen weiteren Parameter, der verwendet wird, um die Ausgabe der Funktion an die zu gruppieren Teamleiter Spalte.

Sie können sehen, dass unser erforderliches Ziel erreicht ist und wie effizient es alles hervorragend angeordnet hat. Aus diesem Grund können Sie leicht erkennen, welcher Teamleiter die Projekte in Ihrer Organisation behandelt.

Anwendungsfall 4

In allen vorherigen Beispielen verkettet wir nur die Zeilen aus einer einzelnen Spalte der Tabelle. In diesem Beispiel werden Sie jedoch feststellen, dass wir sogar eine einzelne Zeichenfolge aus Werten mehrerer Zeilen und verschiedenen Spalten bilden können.

Nehmen wir an, während Sie in der Vertriebsabteilung eines großen Unternehmens arbeiten, wird Ihnen die Aufgabe zugewiesen, die Details Ihrer Kunden und alle Projekte, die jeder Kunden mit der Fertigstellung der Projekte vorliegen, zu analysieren. Alle diese Daten sind in einer einzelnen Datenbanktabelle mit dem Namen Projekt Details drei Spalten haben.

Lassen Sie uns eine Abfrage erstellen, um die gewünschte Ausgabe mithilfe der Redvershift -Listagg -Funktion zu erzielen. Sie werden die folgende Abfrage dafür verwenden, um die gewünschte Ausgabe zu erhalten:

wählen
Kundenname,
Listagg (Projekte || 'wird in' || completion_time, ',', abgeschlossen)
Innerhalb der Gruppe (Order by client_name)
von Organisation.Projekt Details
Gruppe von Client_Name

Die Listagg -Funktion wird auf zwei Spalten angewendet Projekte Und Vervollständigungszeit Verwenden des Doppelrohrsymbols. An einem Ort haben wir den Ausdruck verwendet wird abschließen als Trennzeichen und Komma für die andere Position. Der Ausgang wird in der aufsteigender alphabetischer Reihenfolge in Bezug auf die bestellt Kundenname Spalte. Die Ausgabe aus der oben genannten Rotverschiebung ist wie folgt:

Jetzt können Sie sehen, dass wir unsere Ergebnisse erhalten haben. Es zeigt jedes Projekt mit seiner Zeitdauer und dem Kunden, dem es gehört.

Abschluss

Die Redshift -Listagg -Funktion ist sehr hilfreich, wenn Sie die Daten aus mehreren Zeilen einer Spalte in einer einzelnen Zeile darstellen möchten. Die Funktion

[CC Lang = "Python" Breite = "100%" Höhe = "100%" entkommen = "True" thema = "Blackboard" Nowrap = "0"] kann mehrere Attribute annehmen und nach Bedarf in verschiedenen Formen Ausgabe generieren können. Sie können mit dieser Funktion einfache und komplexe Abfragen erstellen.