PostgreSQL

So verwenden Sie die PostgreSQL ARRAY_AGG-Funktion?

So verwenden Sie die PostgreSQL ARRAY_AGG-Funktion?
Die Aggregatmethode ARRAY_AGG() ist eine der in PostgreSQL verwendeten Methoden, die mehrere Eingabewerte nimmt und sie zu einem Array verkettet, einschließlich NULL-Werten. Es gibt ein Array mit jedem Wert aus der Eingabegruppe als Teil zurück. Um die Ergebnismenge über die PostgreSQL-Funktion ARRAY_AGG zu sortieren, verwenden Sie die ORDER BY-Phrase. Sie können bei Bedarf auch die WHERE-Klausel verwenden.

Um die aggregierte Methode ARRAY_Agg() zu verstehen, müssen Sie mehrere Beispiele ausführen. Öffnen Sie dazu die PostgreSQL-Befehlszeilen-Shell. Wenn Sie den anderen Server einschalten möchten, tun Sie dies, indem Sie seinen Namen angeben. Andernfalls lassen Sie das Feld leer und drücken Sie die Eingabetaste, um zur Datenbank zu springen. Wenn Sie die Standarddatenbank verwenden möchten, z.G., Postgres, dann lassen Sie es wie es ist und drücken Sie die Eingabetaste; andernfalls schreiben Sie den Namen einer Datenbank, z.G., „test“, wie im Bild unten gezeigt. Wenn Sie einen anderen Port verwenden möchten, schreiben Sie ihn aus, ansonsten lassen Sie ihn einfach so und tippen Sie auf Enter, um fortzufahren. Sie werden aufgefordert, den Benutzernamen hinzuzufügen, wenn Sie zu einem anderen Benutzernamen wechseln möchten. Fügen Sie den Benutzernamen hinzu, wenn Sie möchten, andernfalls drücken Sie einfach "Enter". Am Ende müssen Sie Ihr aktuelles Benutzerkennwort angeben, um die Befehlszeile mit diesem bestimmten Benutzer wie unten beschrieben zu verwenden. Nach erfolgreicher Eingabe aller erforderlichen Informationen kann es losgehen.

Verwendung von ARRAY_AGG für eine einzelne Spalte:

Betrachten Sie die Tabelle „person“ in der Datenbank „test“ mit drei Spalten; „ID“, „Name“ und „Alter“. Die Spalte „id“ enthält die IDs aller Personen. Während das Feld 'Name' die Namen der Personen enthält und die Spalte 'Alter' das Alter aller Personen.

>> AUSWÄHLEN * VON Person;

Abhängig von der Overhead-Tabelle müssen wir die aggregierte Methode ARRAY_AGG anwenden, um die Liste der Arrays aller Namen der Tabelle über die Spalte "name" zurückzugeben. Dazu müssen Sie die Funktion ARRAY_AGG() in der SELECT-Abfrage verwenden, um das Ergebnis in Form eines Arrays abzurufen. Versuchen Sie die angegebene Abfrage in Ihrer Befehlsshell und erhalten Sie das Ergebnis. Wie Sie sehen können, haben wir die folgende Ausgabespalte „array_agg“ mit Namen, die in einem Array für dieselbe Abfrage aufgeführt sind.

>> SELECT ARRAY_AGG(Name) FROM Person;

Verwendung von ARRAY_AGG für mehrere Spalten mit ORDER BY-Klausel:

Beispiel 01:

Wenn Sie die ARRAY_AGG-Funktion auf mehrere Spalten anwenden, während Sie die ORDER BY-Klausel verwenden, betrachten Sie dieselbe Tabelle „person“ innerhalb der Datenbank „test“ mit drei Spalten; „ID“, „Name“ und „Alter“. In diesem Beispiel verwenden wir die GROUP BY-Klausel.

>> AUSWÄHLEN * VON Person;

Wir haben das Ergebnis der SELECT-Abfrage in einer Array-Liste verkettet, während wir die beiden Spalten „Name“ und „Alter“ verwendet haben. In diesem Beispiel haben wir Leerzeichen als Sonderzeichen verwendet, das bisher verwendet wurde, um diese beiden Spalten zu verketten. Auf der anderen Seite haben wir die Spalte „id“ separat geholt. Das Ergebnis des verketteten Arrays wird zur Laufzeit in einer Spalte „persondata“ angezeigt. Die Ergebnismenge wird zunächst nach der „ID“ der Person gruppiert und in aufsteigender Reihenfolge nach dem Feld „ID“ sortiert. Versuchen wir den folgenden Befehl in der Shell und sehen Sie sich die Ergebnisse selbst an. Sie können sehen, dass wir im Bild unten ein separates Array für jeden verketteten Name-Alter-Wert haben.

>> SELECT id, ARRAY_AGG (Name ||"|| Alter) als persondata FROM person GROUP BY id ORDER BY id;



Beispiel 02:

Betrachten Sie eine neu erstellte Tabelle „Employee“ in 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 verwenden wir das Sonderzeichen '-', um zwei Felder zu verketten, anstatt Leerzeichen zu verwenden, während wir die Klauseln GROUP BY und ORDER BY verwenden.

>> AUSWÄHLEN * VON Mitarbeiter;

Wir verketten die Daten von zwei Spalten, „Name“ und „E-Mail“ in einem Array, während wir '-' dazwischen verwenden. Wie zuvor extrahieren wir die Spalte „id“ deutlich. Die Ergebnisse der verketteten Spalten werden zur Laufzeit als „emp“ angezeigt. Die Ergebnismenge wird zuerst nach der „ID“ der Person zusammengestellt und anschließend in aufsteigender Reihenfolge der Spalte „ID“ geordnet. Versuchen wir einen sehr ähnlichen Befehl in der Shell mit geringfügigen Änderungen und sehen wir uns die Konsequenzen an. Aus dem Ergebnis unten haben Sie ein eindeutiges Array für jeden verketteten Name-E-Mail-Wert im Bild erhalten, während das '-'-Zeichen in jedem Wert verwendet wird in.

>> SELECT id, ARRAY_AGG (name || '-' || email) AS emp FROM Employee GROUP BY id ORDER BY id;

Verwendung von ARRAY_AGG für mehrere Spalten ohne ORDER BY-Klausel:

Sie können die Methode ARRAY_AGG auch für jede Tabelle ausprobieren, ohne die Klauseln ORDER BY und GROUP BY zu verwenden. Angenommen, eine neu erstellte Tabelle „actor“ in Ihrer alten Datenbank „test“ hat drei Spalten; „id“, „fname“ und „lname“. Die Tabelle enthält Daten zu den Vor- und Nachnamen des Schauspielers zusammen mit seinen IDs.

>> AUSWÄHLEN * VOM Akteur;

Verketten Sie also die beiden Spalten „fname“ und „lname“ in einer Array-Liste mit Leerzeichen dazwischen, genau wie in den letzten beiden Beispielen. Wir haben die Spalte 'id' nicht eindeutig herausgenommen und haben die ARRAY_AGG-Funktion innerhalb der SELECT-Abfrage verwendet. Die resultierende verkettete Spalte des Arrays wird als „Akteure“ dargestellt. Probieren Sie die unten angegebene Abfrage in der Befehlsshell aus und werfen Sie einen Blick auf das resultierende Array. Wir haben ein einzelnes Array mit Name-E-Mail-verkettetem Wert abgerufen, der durch ein Komma vom Ergebnis getrennt ist.

Fazit:

Schließlich sind Sie fast fertig mit der Ausführung der meisten Beispiele, die zum Verständnis der Aggregatmethode ARRAY_AGG erforderlich sind. Probieren Sie am Ende mehr davon aus, um ein besseres Verständnis und Wissen zu erhalten.

Beste Linux-Distributionen für Gaming im Jahr 2021
Das Linux-Betriebssystem hat sich weit von seinem ursprünglichen, einfachen, serverbasierten Aussehen entfernt. Dieses Betriebssystem hat sich in den ...
So erfassen und streamen Sie Ihre Gaming-Sitzung unter Linux
In der Vergangenheit galt das Spielen von Spielen nur als Hobby, aber mit der Zeit verzeichnete die Spieleindustrie ein enormes Wachstum in Bezug auf ...
Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...