Ich verstehe den Punkt von GROUP BY x
Aber wie funktioniert
GROUP BY x, y
und was bedeutet das?
Ich verstehe den Punkt von GROUP BY x
Aber wie funktioniert
GROUP BY x, y
und was bedeutet das?
Antworten:
Group By X
bedeutet , alle diejenigen mit dem gleichen Wert für X in eine Gruppe zu setzen .
Group By X, Y
bedeutet , alle diejenigen mit den gleichen Werten für X und Y in eine Gruppe einzuteilen .
Nehmen wir zur Veranschaulichung anhand eines Beispiels an, wir haben die folgende Tabelle, die damit zu tun hat, wer welches Fach an einer Universität besucht:
Table: Subject_Selection
Subject Semester Attendee
---------------------------------
ITB001 1 John
ITB001 1 Bob
ITB001 1 Mickey
ITB001 2 Jenny
ITB001 2 James
MKB114 1 John
MKB114 1 Erica
Wenn Sie eine group by
Spalte nur für das Thema verwenden; sagen:
select Subject, Count(*)
from Subject_Selection
group by Subject
Sie erhalten so etwas wie:
Subject Count
------------------------------
ITB001 5
MKB114 2
... weil es 5 Einträge für ITB001 und 2 für MKB114 gibt
Wenn wir zu group by
zwei Spalten wären:
select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester
wir würden das bekommen:
Subject Semester Count
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2
Wenn wir nach zwei Spalten gruppieren, heißt es: " Gruppieren Sie sie so, dass sich alle mit demselben Fach und Semester in derselben Gruppe befinden, und berechnen Sie dann alle Aggregatfunktionen (Anzahl, Summe, Durchschnitt usw.). ) für jede dieser Gruppen " . In diesem Beispiel wird dies durch die Tatsache demonstriert, dass, wenn wir sie zählen, drei Personen ITB001 in Semester 1 und zwei Personen in Semester 2 ausführen. Beide Personen, die MKB114 ausführen, befinden sich in Semester 1, also gibt es keine Zeile für Semester 2 (keine Daten passen in die Gruppe "MKB114, Semester 2")
Hoffentlich macht das Sinn.
GROUP BY A,B
das dasselbe ist wie GROUP BY B,A
?
GROUP BY a, b
und gibt, GROUP BY a AND b
da der zweite nur gruppierte Elemente mit genau dem gleichen Inhalt und ohne "Untergruppen" auflistet. In diesem Fall wäre die Ausgabe dieselbe wie die erste.
Die GROUP BY
Klausel wird in Verbindung mit den Aggregatfunktionen verwendet, um die Ergebnismenge nach einer oder mehreren Spalten zu gruppieren. z.B:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
Denken Sie an diese Reihenfolge:
1) SELECT (wird verwendet, um Daten aus einer Datenbank auszuwählen)
2) FROM (Klausel wird verwendet, um die Tabellen aufzulisten)
3) WHERE (Klausel wird zum Filtern von Datensätzen verwendet)
4) GROUP BY (Klausel kann in einer SELECT-Anweisung verwendet werden, um Daten über mehrere Datensätze hinweg zu sammeln und die Ergebnisse nach einer oder mehreren Spalten zu gruppieren)
5) HAVING (Klausel wird in Kombination mit der GROUP BY-Klausel verwendet, um die Gruppen der zurückgegebenen Zeilen auf diejenigen zu beschränken, deren Bedingung TRUE ist)
6) ORDER BY (Schlüsselwort wird verwendet, um die Ergebnismenge zu sortieren)
Sie können alle diese Funktionen verwenden, wenn Sie Aggregatfunktionen verwenden. In dieser Reihenfolge müssen sie festgelegt werden, da sonst eine Fehlermeldung angezeigt werden kann.
Aggregatfunktionen sind:
MIN gibt den kleinsten Wert in einer bestimmten Spalte zurück
SUM gibt die Summe der numerischen Werte in einer bestimmten Spalte zurück
AVG gibt den Durchschnittswert einer bestimmten Spalte zurück
COUNT gibt die Gesamtzahl der Werte in einer bestimmten Spalte zurück
COUNT (*) gibt die Anzahl der Zeilen in einer Tabelle zurück