Postgresql-Gruppe von

Postgresql Gruppe Von



Postgresql group by-Klausel ist eine Funktion, die verwendet wird, um die Zeilen in der Tabelle zu vereinen/kombinieren, die dieselben Daten enthalten. Diese Klausel wird hauptsächlich verwendet, um doppelte Daten zu entfernen und Parallelität aufrechtzuerhalten. Wann immer wir die Summe oder ein anderes Aggregat wie AVG usw. berechnen möchten, wird diese Gruppieren-nach-Klausel immer verwendet, da in PostgreSQL viele Klauseln verwendet werden. Aber es gibt eine Hierarchie zwischen jeder Klausel.

FROM > WO > „GRUPPE NACH“ > HAVING > SELECT > DISTINCT > ORDER BY > LIMIT

Die Funktionsweise von PostgreSQL liegt in „where“ und der „Having“-Klausel.







Syntax



SELECT-Spalte

VON dumytable

WO [Bedingungen]

GROUP BY erste Spalte, zweite Spalte..

ORDER BY ersteSpalte, zweiteSpalte.. ;

Beispiel 1



Um das Konzept der Gruppierung nach Funktion zu verstehen, verwenden wir hier ein Beispiel. In der Tabelle der Passagiere können Sie sehen, dass die Nachnamen für einige Personen gleich sind. Jeder Name, der einem anderen ähnlich ist, bildet eine Gruppe, und ihre Zahlung wird kollektiv zu jedem gleichen Namen hinzugefügt. Dies wird im folgenden Beispiel näher ausgeführt.





>> lname, SUM (Zahlung) vom Passagier auswählen GROUP BY lname;

Der Nachname des Passagiers wird mithilfe einer integrierten Funktion „SUMME“ ausgewählt, die die Spalte „Zahlung“ verwendet. Und fügen Sie die Zahlung für die Personen hinzu, die denselben Namen haben. Beispielsweise wird das Gehalt von „Javed“ und „saad“ addiert. Während für „Malik“ und „Shams“ es einzeln erwähnt wird.



Stellen Sie sich in ähnlicher Weise eine Tabelle „Krankenhaus“ vor. Wir wollen die Stadt nach dem Alter gruppieren. In diesem Beispiel existiert eine Stadt mehr als einmal in einer Spalte. Jede Stadt wird mit dem gleichen Stadtnamen gruppiert. Die Altersgruppen jeder Gruppe der Stadt werden addiert und bilden eine einzelne Zeile.

Krankenhaus:

>> Stadt auswählen, SUM (Alter) aus Krankenhaus GRUPPIEREN NACH Stadt;

Beispiel 2

Wenn wir alternativ den Nachnamen mit der ID aus der Tabelle Passenger auswählen, ist das Ergebnis eine andere Tabelle. Denn wenn wir beide Spalten zusammen gruppieren, wird der Name jedes Passagiers angezeigt, da die ID für jeden Passagier unterschiedlich ist, selbst wenn er einen gemeinsamen Nachnamen hat. Die Summe wird in einer separaten Spalte berechnet, aber die Zahlung jedes Passagiers wird vor seinem Namen erwähnt, da die Gruppierung von lname hier nicht erfolgt.

Dies ist ein Beispiel für die group by-Klausel mit mehreren Spalten. Denn wenn mehrere Spalten zur Gruppierung ausgewählt werden, ändert sich der resultierende Wert im Vergleich zur Gruppierung um eine einzelne Tabelle.

>> ID, lname, SUM (Zahlung) vom Passagier auswählen GROUP BY id, lname;

An der Ausgabe werden Sie feststellen, dass zuerst alle ungewöhnlichen Lname angezeigt werden und dann die gleichen in der Tabelle erwähnt werden.

Beispiel 3

Dieses Beispiel hat eine Join-Bedingung und eine Group by-Klausel. Da „Join“ verwendet wird, bedeutet dies, dass wir hier zwei Tabellen verwendet haben. Einer ist „Artikel“ und der andere „Bestellungen“.

Artikel:

Aufträge:

Wir haben eine Verkettungsmethode (die verwendet wird, um zwei Strings zu verbinden) verwendet, um die Werte von zwei Spalten der Tabelle „items“ mit „,“ zu verbinden und die Spalte gemeinsam als „description“ zu benennen. Es ist optional; Sie können sie separat einnehmen. In dieser Abfrage identifiziert das Schlüsselwort „USING“ die spezifische Spalte aus der anderen Tabelle. Die Adresse aus der Artikeltabelle wird mit der Adressspalte der Tabelle „Bestellungen“ abgeglichen. Dies geschieht durch eine Verknüpfung zwischen zwei Tabellen. Wie in den vorherigen Beispielen werden beide Spalten durch die GROUP BY-Klausel ausgewählt.

>> Namen auswählen || ‘,’ || Kategorie als Beschreibung, Adresse von Artikeln inner Join Bestellungen USING (Adresse) GROUP BY Adresse, Beschreibung;

Sie können beobachten, dass 5 Zeilen ausgewählt werden, in denen die Adresse der Artikel mit der Adresse der Bestellungen übereinstimmt. Und dann wird die Beschreibungsspalte entsprechend der Adressspalte gebildet.

In ähnlicher Weise gibt es ein weiteres Beispiel für die Verkettung mit dem Faktor Alter in zwei Tabellen. Der eine ist „Passagier“, der andere „Arbeiter“. Die Verkettung erfolgt zwischen dem Vor- und dem Nachnamen. Diese beiden Namen werden durch das Leerzeichen zwischen zwei Namen getrennt. Wir haben hier einen Teil des Arbeitertisches genommen.

Arbeiter:

Die Abfrage funktioniert so, dass der Punkt, an dem der Fname des Arbeiters mit dem Passagier übereinstimmt, das Alter des Passagiers, in der Altersspalte angezeigt wird.

>> fname auswählen || ‘ ‘ || passagier.lname als full_name, passagier.alter von passagier INNER beitreten arbeiter USING (fname) GROUP BY full_name, passagier.alter ORDER BY passagier.alter;

Es entsteht eine Reihe. Der vollständige_Name wird erstellt, indem zwei Spalten mit Leerzeichen verbunden werden, und die Adresse wird ausgewählt, wenn der Vorname des Passagiers mit dem Vornamen des Arbeitnehmers übereinstimmt.

Beispiel 4

In diesem Beispiel geht es um die Verwendung einer count()-Funktion, um die IDs der „items“-Tabelle zu zählen. Dies wird wiederum nach der ID der Tabelle gruppiert.

>> ID auswählen, COUNT (id) FROM items GROUP BY id;

Die Zeilen in der ID-Spalte sind in Gruppen aufgeteilt. Jede Gruppe wird in der Spalte so gezählt, wie oft sie in der Spalte erscheint. In der resultierenden Tabelle wird eine neue Spalte mit dem Namen „count“ erstellt, und die Werte des count werden hier vor jede Gruppe geschrieben.

Ihr pgAdmin

Jetzt haben wir einige Beispiele auf der Dashboard-Seite von PostgreSQL angewendet. Diese Beispiele unterscheiden sich in gewisser Weise, da sie eine Zwischensummenzeile aus der ursprünglichen Spalte bilden, wenn sich eines der Elemente von den anderen unterscheidet, sodass der Wert als NULL zurückgegeben wird.

Betrachten Sie das erste Beispiel; hier haben wir einen Spaltennamen „ALL“ erstellt, der zwei Spalten kombiniert hat. Eine Adresse und eine Kategorie. Die Spalte „ALLE“ zählt die Werte in beiden Spalten zusammen. Die Adressspalte wird als „Hinzufügen“ gruppiert und die Kategoriespalte wird separat als „Katze“ gruppiert. Als Spaltennamen können beide verwendeten Tabellen miteinander abgeglichen werden. Auf jede Spalte der jeweiligen Tabelle wird also von einem bestimmten Objekt zugegriffen.

Die auf den Befehl angewendete Bedingung hängt von der ID und der Bestellnummer ab. Wenn sowohl diese ID als auch die Bestellnummern gleich sind, werden die Daten abgerufen. Ebenso wird für den Namen eine zusätzliche Bedingung hinzugefügt.

>> SELECT o.address, category, count (*) AS „ALL“, GROUPING(o.address) AS „add“ , GROUPING (category ) AS „cat“ FROM items I, orders o where i.order_no = o. order_id AND i.address= 'Lahore' GROUP BY CUBE (o.address, category) ORDER BY 1, 2;

Für die Stadt Lahore wird eine Kategorie ausgewählt. Es gibt 4 Möglichkeiten. Manchmal ist das Spielzeug vorhanden, aber nicht die Adresse. Und umgekehrt. Aber es gibt eine Zeit, in der sowohl die Kategorie als auch die Adresse vorhanden sind.

Wenn wir nun die Bedingung des Namens einer Tabelle ändern und die Tabelle mit einer anderen tauschen. „Artikel.Adresse“ wird durch die „Bestelladresse“ ersetzt, dann ist das Ergebnis anders.

Abschluss

Die Klausel „Postgresql group by“ wird verwendet, um einen beliebigen Aggregatoperator auf die kollektiven Daten anzuwenden. Dieser Artikel verwendet die Group-by-Klausel mit count-Funktion, Joins und Auswahl und Gruppierung mehrerer Spalten. Ich bin sicher, dass dieses Tutorial das beste Mittel zum Verständnis für die Leser sein wird.