So verwenden Sie die Funktion postgresql array_agg?

So verwenden Sie die Funktion postgresql array_agg?
Die Aggregat -Methode array_agg () ist eine der in PostgreSQL verwendeten Methoden, bei der mehrere Eingabestalte verwendet werden und sie in ein Array verkettet werden, einschließlich Nullwerten. Es gibt ein Array mit jedem Wert aus der Eingabegruppe zurück. So sortieren Sie das Ergebnis, das über die Funktion postgresql array_agg gesetzt wurde, die Bestellung per Phrase verwenden. Sie können auch die Where -Klausel verwenden, wenn dies erforderlich ist.

Um die aggregierte Array_agg () -Methode zu verstehen, müssen Sie mehrere Beispiele durchführen. Öffnen Sie zu diesem Zweck die PostgreSQL-Befehlszeilenschale. Wenn Sie den anderen Server einschalten möchten, geben Sie dies an, indem Sie seinen Namen angeben. Lassen Sie den Speicherplatz ansonsten leer und drücken Sie die Eingabetaste, um auf die Datenbank zu springen. Wenn Sie die Standarddatenbank verwenden möchten, e.G., Postgres, dann lassen Sie es so wie es ist und drücken Sie die Eingabetaste. Ansonsten schreiben Sie den Namen einer Datenbank, e.G., "Test", wie im Bild unten gezeigt. Wenn Sie einen anderen Port verwenden möchten, schreiben Sie ihn aus, sonst lassen Sie ihn einfach so wie er ist und tippen Sie auf die Eingabetaste, um fortzufahren. Sie werden Sie auffordern, den Benutzernamen hinzuzufügen, wenn Sie zu einem anderen Benutzernamen wechseln möchten. Fügen Sie den Benutzernamen hinzu, wenn Sie möchten, sonst drücken Sie einfach "EINGABEN". Am Ende müssen Sie Ihr aktuelles Benutzerkennwort bereitstellen, um die Befehlszeile mit diesem bestimmten Benutzer wie unten zu verwenden. Nach erfolgreichen Einträgen aller erforderlichen Informationen können Sie loslegen.

Verwendung von Array_agg in einer Spalte:

Betrachten Sie die Tabelle "Person" in der Datenbank "Test" mit drei Spalten. "Id", "Name" und "Alter". Die Spalte "ID" hat die IDs aller Personen. Während das Feld 'Name' die Namen der Personen und das Spalten 'Alter' enthält, das Alter aller Personen.

>> aus der Person auswählen;

Abhängig von der Overhead -Tabelle müssen wir die aggregierte Array_agg -Methode anwenden, um die Liste der Array aller Namen der Tabelle über Spalte „Name“ zurückzugeben. Damit müssen Sie die Funktion array_agg () in der Abfrage auswählen verwenden. Probieren Sie die angegebene Abfrage in Ihrer Befehlsschale aus und erhalten Sie das Ergebnis. Wie Sie können.

>> Wählen Sie Array_agg (Name) von Person;

Verwendung von Array_agg in mehreren Spalten mit Bestellung nach Klausel:

Beispiel 01:

Wenn Sie die Funktion array_agg auf mehrere Spalten anwenden, während die Bestellung nach Klausel verwendet wird, betrachten Sie dieselbe Tabelle „Person“ innerhalb der Datenbank „Test“ mit drei Spalten. "Id", "Name" und "Alter". In diesem Beispiel werden wir die Gruppe nach Klausel verwenden.

>> aus der Person auswählen;

Wir haben die Auswahl der Auswahlabfrage in einer Array -Liste verkettet, während wir die beiden Spalten "Name" und "Alter" verwendet haben. In diesem Beispiel haben wir den Raum als speziell. Andererseits haben wir die Spalte "ID" getrennt abgeholt. Das verkettete Array -Ergebnis wird in einer Spalte „Persondata“ zur Laufzeit angezeigt. Das Ergebnissatz wird zunächst nach der „ID“ der Person gruppiert und in aufsteigender Reihenfolge des Feldes „ID“ sortiert. Versuchen wir den folgenden Befehl in der Shell und sehen Sie die Ergebnisse selbst an. Sie sehen.

>> ID auswählen, Array_agg (Name || "|| Alter) als PERODDATA von Person Group By ID Order by ID;



Beispiel 02:

Betrachten Sie eine neu erstellte Tabelle „Mitarbeiter“ innerhalb der Datenbank „Test“ mit fünf Spalten. "ID", "Name", "Gehalt", "Alter" und "E -Mail". Die Tabelle speichert alle Daten über die 5 Mitarbeiter, die in einem Unternehmen arbeiten. In diesem Beispiel werden wir das spezielle Charakter verwenden. '-', um zwei Felder zu verkettet, anstatt Platz zu nutzen, während die Gruppe nach und order nach Klausel verwendet wird.

>> aus dem Mitarbeiter auswählen;

Wir verkettet die Daten von zwei Spalten, "Name" und "E-Mail" in einem Array, während wir '-' zwischen ihnen verwendet werden. Wie zuvor extrahieren wir die Spalte „ID“ deutlich. Die verketteten Spaltenergebnisse werden zur Laufzeit als „EMP“ angezeigt. Der Ergebnissatz wird zuerst durch die „ID“ der Person zusammengestellt und danach in aufsteigender Reihenfolge der Spalte „ID“ organisiert. Versuchen wir einen sehr ähnlichen Befehl in der Shell mit geringfügigen Änderungen und sehen Sie die Konsequenzen an. Aus dem Ergebnis unten haben Sie ein bestimmtes Array für jeden im Bild dargestellten verketteten Wert für jeden Namen erhalten, während das Zeichen '-' in jedem Wert verwendet wird.

>> ID auswählen, Array_agg (Name || '-' || E-Mail) als EMP von der Mitarbeitergruppe nach ID-Bestellung nach ID;

Verwendung von Array_agg in mehreren Spalten ohne Bestellung nach Klausel:

Sie können auch die Array_agg -Methode in einer beliebigen Tabelle ausprobieren, ohne die Reihenfolge für und Gruppen nach Klausel zu verwenden. Nehmen Sie eine neu erstellte Tabelle „Schauspieler“ in Ihrer alten Datenbank „Test“ mit drei Spalten; "Id", "fname" und "lname". Die Tabelle enthält Daten über die Vornamen und Nachnamen des Schauspielers zusammen mit ihren IDs.

>> aus dem Schauspieler auswählen;

Verkettieren Sie also die beiden Spalten "fname" und "lname" in einer Array -Liste, während Sie Platz zwischen ihnen verwenden, wie Sie es in den letzten beiden Beispielen getan haben. Wir haben die Spalte 'ID' deutlich herausgenommen und die Funktion array_agg in der Abfrage auswählen. Die resultierende Array -verkettete Spalte wird als „Schauspieler“ dargestellt,. Probieren Sie die unterbezeichnete Abfrage in der Befehlsschale aus und erhalten Sie einen Blick auf das daraus resultierende Array. Wir haben ein einzelnes Array mit dem vorgestellten Namen des Namens-verketteten Werts abgerufen, das durch ein Komma vom Ergebnis getrennt ist.

Abschluss:

Schließlich sind Sie fast fertig, um die meisten Beispiele auszuführen. Versuchen Sie mehr von ihnen an Ihrem Ende, um besseres Verständnis und Wissen zu erhalten.