SQL-String-Aggregationsfunktionen

Sql String Aggregationsfunktionen



Wenn Sie sich schon einmal mit SQL-Datenbanken beschäftigt haben, sind Sie wahrscheinlich mit Aggregatfunktionen vertraut. Dabei handelt es sich im Wesentlichen um eine Reihe von Funktionen, die Berechnungen für eine Reihe von Werten durchführen und ein einzelnes Ergebnis zurückgeben.

Ein Beispiel umfasst Funktionen wie SUM(), AVG(), COUNT(), MAX und MIN(). Bei Aggregatfunktionen in SQL wird Ihnen jedoch auffallen, dass sie auf numerische Operationen ausgerichtet sind.

Aber wussten Sie, dass es Aggregatfunktionen gibt, die mit String-Werten umgehen? In diesem Tutorial werden wir uns diese Funktionen ansehen, wie sie funktionieren und wie wir sie in unseren Datenbanken verwenden können.







HINWEIS: Es ist zu beachten, dass die meisten der in diesem Beitrag behandelten Funktionen nicht Teil des Standard-SQL sind. Dadurch sind sie eine Erweiterung verschiedener Datenbank-Engines wie PostgreSQL, SQL Server usw.



Was sind String-Aggregatfunktionen?

String-Aggregatfunktionen sind eine Reihe von Funktionen, die Aggregationsvorgänge für eine Reihe von Strings innerhalb einer Gruppe oder Zeilen ausführen und ein einzelnes Ergebnis zurückgeben.



Wir verwenden diese Funktionen hauptsächlich mit der GROUP BY-Klausel, um die Zeilen basierend auf einer bestimmten Spalte zu gruppieren und dann die Zeichenfolgen in jeder Gruppe zusammenzufassen.





Zu den gängigen String-Aggregationsfunktionen gehören:

  • GROUP_CONCAT() – PostgreSQL und MySQL
  • STRING_AGG – SQL Server
  • ARRAY_AGG – PostgreSQL
  • LISTAGG – Orakel

Lassen Sie uns jede Funktion und ihre Vorteile untersuchen.



GROUP_CONCAT()

Die Funktion GROUP_CONCAT() wird von PostgreSQL- und MySQL-Datenbanken unterstützt. Es ermöglicht uns, die Werte aus mehreren Zeilen in einer einzigen Zeichenfolge zu verketten.

Angenommen, wir haben eine „Mitarbeiter“-Tabelle wie folgt:

CREATE TABLE Mitarbeiter (
Employee_id INT AUTO_INCREMENT PRIMARY KEY,
Vorname VARCHAR(50),
Nachname VARCHAR(50),
Abteilung VARCHAR(50)
);

INSERT INTO Mitarbeiter (Vorname, Nachname, Abteilung) WERTE
(„Alice“, „Smith“, „Personalwesen“),
(„Bob“, „Johnson“, „Marketing“),
(„Charlie“, „Wilson“, „Finanzen“),
(„David“, „Brown“, „Verkäufe“),
(„Eva“, „Davis“, „Ingenieurwesen“);

Ausgabe:

Wenn wir den vollständigen Namen des Mitarbeiters ermitteln möchten, indem wir den Vornamen nehmen und mit dem Nachnamen verketten, können wir die Funktion GROUP_CONCAT() verwenden, wie im folgenden Beispiel gezeigt:

WÄHLEN
Abteilung,
GROUP_CONCAT(first_name, ' ', last_name) AS full_name
AUS
Mitarbeiter
GRUPPIERE NACH
Abteilung;

In diesem Fall verwenden wir die Funktion, um die Zeichenfolgen aus den Spalten „Vorname“ und „Nachname“ zu verketten, und eine leere Zeichenfolge, um den Namen ein Leerzeichen hinzuzufügen.

Diese enthält eine Liste der Mitarbeiter jeder Abteilung.

STRING_AGG

Diese Funktion ähnelt der Funktion GROUP_CONCAT(), wird jedoch nur in der SQL Server-Datenbank unterstützt.

Eine Beispielverwendung ist wie folgt:

WÄHLEN
Abteilung,
STRING_AGG(Vorname, Nachname, ' ') AS vollständiger_Name
AUS
Mitarbeiter
GRUPPIERE NACH
Abteilung;

Dadurch wird die Zeichenfolgenverkettung für die angegebenen Spalten als Leerzeichen als Trennzeichen durchgeführt.

ARRAY_AGG

Die Funktion ARRAY_AGG ist nur in der PostgreSQL-Datenbank verfügbar. Es ermöglicht uns, die Werte in einem einzigen Array zusammenzufassen.

Ein Beispiel ist wie folgt:

WÄHLEN
Abteilung,
ARRAY_AGG(Vorname) AS Mitarbeiterliste
AUS
Mitarbeiter
GRUPPIERE NACH
Abteilung;

Dadurch sollte der Mitarbeitername als Array zusammengefasst werden.

LISTAGG()

Die Funktion LISTAGG() ist nur in der Oracle-Datenbank verfügbar. Es ermöglicht uns, die Werte mit einem angegebenen Trennzeichen zu einer einzigen Zeichenfolge zu verketten.

Ein Beispiel ist wie folgt:

WÄHLEN Sie Abteilung, LISTAGG(Vorname, Nachname,  ' ') INNERHALB DER GRUPPE (ORDNUNG NACH Mitarbeitername ASC) AS-Mitarbeiter
VON Mitarbeitern
GRUPPE NACH Abteilung;

Dadurch werden die Namen der Mitarbeiter und das angegebene Trennzeichen verkettet.

Abschluss

In diesem Tutorial haben wir die String-Aggregatfunktionen kennengelernt, mit denen wir eine Liste von String-Werten bereitstellen und eine Operation in einen einzelnen resultierenden String-Wert ausführen können.