Postgres -Gruppe tagsüber

Postgres -Gruppe tagsüber
Eine Postgres -Gruppenanweisung wird verwendet, um Gruppen der Zeilen zu erstellen, die aus der Auswahlanweisung erhalten werden. Diese Klausel ist hilfreich, wenn wir die integrierten Funktionen von Postgres mit dem Befehl auswählen müssen. Zum Beispiel können wir diese Klausel mit Summe (), count () einfach mit der Auswahlanweisung verwenden. In diesem Tutorial wird in dieser Klausel gearbeitet, um die Reihen der Beziehung gemäß den von Ihnen eingegebenen Daten zu gruppieren.

Gruppensyntax nach Klausel

WÄHLEN
Spalte1,
NAME_OF_FUUNTION (Spalte2)
AUS
Name_of_table
GRUPPIERE NACH
column_1;

Die name_of_function ist die integrierte Funktion hauptsächlich wie die Zählfunktion, um die Anzahl der Zeilen zu zählen, die entsprechend gruppiert werden sollen. Während im Fall von zwei Spalten in einer Auswahlanweisung verwendet werden, verwenden wir beide Spalten in Select und in der Gruppe nach Klausel.

Implementierung der Gruppe tagsüber

Betrachten Sie das folgende Beispiel, in dem wir eine Tabelle mit dem Namen ein Land haben, das alle Informationen zu Land, ID, Namen und dem Kontinentnamen enthält. Wir werden einen Gruppen-zu-by-Befehl auf die Tabelle anwenden.

Die Gruppe nach Klausel wird in der Spalte angewendet, sodass wir die Spalte Kontinent ausgewählt haben, um die Länder desselben Kontinents zu gruppieren. Zunächst wählen wir die spezifische Spalte aus, die wir gruppieren möchten. ich.e., Kontinent. Anschließend erstellen wir eine neue Spalte, um das Ergebnis anzuzeigen. Diese resultierende Spalte wird als same_area bezeichnet. Die integrierte Funktion von PostgreSQL Count () wird hier verwendet, um die IDs zu zählen, die die gleichen Kontinente haben.

>> Wählen Sie den Kontinent als Same_area aus, zählen Sie (ID) von Country Group nach Kontinent;

Dadurch werden die folgenden Ergebnisse in einem neu erstellten Befehl mit der Grafspalte zur Ausführung erfolgt. Das Ergebnis zeigt also, dass zwei Kontinente in einer Tabelle zweimal erscheinen. Diese beiden gleichen Kontinente werden gemeinsam erwähnt, um eine Gruppe durch Verwendung einer Gruppe nach Klausel zu bilden.

Gruppe bei Tag

Wie wir gesehen haben. Jetzt werden wir einige Beispiele verwenden, um Daten der Tabelle gemeinsam nach den Tagen aus den Daten zu gruppieren, die wir in Tabellen verwendet haben. Hier wird eine neue Beziehung erstellt, um ein neues Beispiel zu implementieren. Durch die Verwendung des Befehls s create create wird eine Tabelle mit dem Namen Test mit 3 Spalten erstellt, ID, Subjekt_Name und test_date; Der Datentyp für diese Variable wird als Datum verwendet, da wir Daten der Tabelle nach dem Tag gruppieren müssen.

>> Tabellen -Test erstellen (ID Integer, Subjekt_Name varchar (10), test_date Datum);

Nach dem Erstellen der Tabelle müssen wir Werte in der Tabelle über eine Einfügeanweisung einfügen. Wenn Sie Daten einfügen, sollte sicherstellen, dass die eingefügten Werte die gleichen Daten in zwei oder mehr Zeilen enthalten, um Konflikte zu vermeiden, während die Zeilen entsprechend gruppiert werden. Weil unterschiedliche Daten nicht gruppiert werden. Die Spalte test_date enthält Daten entsprechend dem Datumsformat der integrierten Datumsfunktion und sollte in umgekehrten Kommas geschrieben werden.

>> in test (id, subjekt_name, test_date) values ​​('1', 'Englisch', '2022-11-22'), ('2', 'Chemistry', '2022-8-06')), ('2', 'Chemistry', '2022-8-06')), ( '3', 'Socialogy', '2022-11-22'), ('4', 'Math', '2022-8-06'), ('5', 'English', 2022-03-08 '), (' 6 ',' Physik ',' 2022-06-19 ');

Um die eingegebenen Daten in der Tabelle anzuzeigen.

>> aus dem test auswählen;

Sie können sehen, dass einige Zeilen in den Spalten test_date ähnlich aussehen.

Beispiel 1
Wir werden die Auswahlabfrage mit der Gruppe per Klausel verwenden, um dieselben Werte zu kombinieren.

>> select date_trunc ('tag', test_date) as combine_test, count (id) als count von test Group By DATE_TRUNC ('DAY', test_date);

Dieser Befehl enthält die integrierte Datumsfunktion, um die Tage nur ab dem eingegebenen Datumswert abzurufen. Diese Funktion nimmt das Schlüsselwort "Tag" auf, um Tage zu holen, und den Spaltennamen, auf dem diese Funktion als Parameter angewendet werden soll. Und dann eine neue resultierende Spalte angeben; Die Funktion count () zählt die Gesamt -IDs, die gleich sind. Und die Auswahl wird nach den daraus resultierenden Tagen gruppiert, die aus den verwendeten Daten konvertiert werden.

Bei der Ausführung sehen Sie das obige Ergebnis. Sie können sehen, dass diese Zeilen mit den gleichen Daten als Gruppe kombiniert werden.

Beispiel 2
Betrachten Sie erneut das obige Beispiel, aber wir haben die Daten diesmal mit zwei Spalten gruppiert. Wir müssen die beiden Elemente auswählen, die wir mit der Gruppe nach Klausel verwenden möchten. Andernfalls führt PostgreSQL den Befehl nicht aus. Wir haben die ID und die Datumsspalte verwendet.

>> id, date_trunc ('tag', test_date) als combine_test, count (id) als Zählung von Testgruppe nach ID, DATE_TRUNC ('Day', test_date);

Diesmal sind die Werte nicht gruppiert. Denn wenn wir die Gruppe nach Klausel mit mehr als einer Spalte verwenden. Diese resultierende Tabelle zeigt also, dass keine Zeile gruppiert ist, da alle IDs unterschiedlich sind. Jede ID -Anzahl zeigt 1 für jede Zeile.

Beispiel 3
Die Daten mit der gleichen Tagesnummer und der verschiedenen Monatszahlen sind nicht gruppiert. Es ist notwendig, Tage, Monate und Jahre gleich zu haben. Andernfalls hat die Reihe den selben Tag, aber verschiedene Monate und Jahre sind nach den Tagen nicht gruppiert. Diese wurden als getrennte Reihen gezählt. Um dieses Konzept zu verstehen, werden wir erneut eine andere Zeile mit demselben, aber unterschiedlichen anderen Attributen von Daten einfügen.

Durch die Anwendung derselben Gruppe nach Klausel in der Auswahlanweisung erhalten wir das folgende Ergebnis. Sie können beobachten, dass die neu eingegebene Reihe nicht gruppiert ist.

Beispiel 4
Die vorherigen Beispiele befassen sich mit der Extraktion und Gruppierung des Tages gemäß der Datumsfunktion. Aber jetzt werden wir die Namenszeiten der Woche als Zeichenfolgenwert verwenden. Wir werden eine Gruppe per Klausel verwenden, um die Zeilen nach den gleichen Tagen zu gruppieren. Erstellen Sie eine neue Tabelle mit dem Namen Match mit ID, Namen und dem Tag des Spiels als Attribute.

>> TABLE -Übereinstimmung erstellen (ID Integer, Name Varchar (10), Tagesvarchar (10));

Jetzt werden wir Daten mit einer Einfügeanweisung eingeben. Die Daten des Spaltentages enthalten den Namen der Tage mit einigen ähnlichen Werten.

Jetzt werden wir die Gruppe per Klausel anwenden, um die gleichen Tage in der Tagesspalte wie eine resultierende Spalte einer combine_match zu kombinieren.

>> Tag als combine_match, zählen (id) als zählende von der Match -Gruppe bei Tag;

Nach dem Befehl sind die gleichen Tage in der Spalte gruppiert. Und diejenigen, die nicht gleich waren, werden unabhängig erwähnt.

Jetzt werden wir wieder eine Zeile mit demselben Namen wie dem Match mit demselben Namen des Tages einfügen. Die vorherigen Zeilen haben Daten mit unterschiedlichen Übereinstimmungsnamen mit den gleichen Tagen.

Verwenden Sie die Gruppe nach Klausel zusammen mit zwei Spaltennamen und dem Tag. Jetzt sind nur diese Reihen mit den gleichen Namen und Tagen gruppiert. Während andere ohne Gruppierung angezeigt werden.

>> Name, Tag, Tag, Graf (ID) von der Spielgruppe nach Namenstag;

Abschluss

Der Artikel "Postgres Group by Day" beschreibt die Implementierung in der PostgreSQL -Sprache unter Windows 10 unter Verwendung von PSQL -Shell. Wir haben die integrierten Funktionen zu den Datumsmerkmalen und auch in die manuell eingegebenen Daten über Befehle aufgenommen. Die Gruppe nach Klausel hilft bei der Verwaltung von Daten, um die gleiche Art von Daten ausgerichtet und intakt zu halten.