Heim >Datenbank >MySQL-Tutorial >MySQL-Datengruppierung: Erstellen Sie eine Gruppe

MySQL-Datengruppierung: Erstellen Sie eine Gruppe

巴扎黑
巴扎黑Original
2017-05-09 13:49:562353Durchsuche

MySQL-Datengruppierung

SQL-Aggregatfunktionen können zum Zusammenfassen von Daten verwendet werden. Dadurch können wir Zeilen zählen, Summen und Durchschnittswerte berechnen und Maximal- und Minimalwerte ermitteln, ohne alle Daten abzurufen.

Alle bisherigen Berechnungen wurden für alle Daten in der Tabelle oder für Daten durchgeführt, die einer bestimmten where-Klausel entsprechen. Zur Erinnerung: Das folgende Beispiel gibt die Anzahl der vom Lieferanten 1003 bereitgestellten Produkte zurück:

Eingabe:

select count(*) as mun_prods from products where vend_id = 1003;

Ausgabe:

MySQL-Datengruppierung: Erstellen Sie eine Gruppe

Aber was ist, wenn Sie die Anzahl der von jedem Lieferanten angebotenen Produkte zurückgeben möchten? Oder was ist, wenn wir Produkte von Lieferanten zurückgeben, die nur ein einziges Produkt anbieten, oder Lieferanten zurückgeben, die mehr als 10 Produkte anbieten?

Dies ist die Zeit für Gruppen, ihr Können unter Beweis zu stellen. Durch die Gruppierung können Daten in mehrere logische Gruppen unterteilt werden, sodass für jede Gruppe aggregierte Berechnungen durchgeführt werden können.

MySQL erstellt eine Gruppe

Die Gruppe wird in der Group-By-Klausel der Select-Anweisung erstellt. Der beste Weg, die Gruppierung zu verstehen, ist das folgende Beispiel:

Eingabe:

select vend_id,count(*) as num_prods from products group by vend_id;

Ausgabe:

MySQL-Datengruppierung: Erstellen Sie eine Gruppe

Analyse: oben Die Select-Anweisung gibt zwei Spalten an, vend_id enthält die ID des Produktlieferanten und num_prods ist ein berechnetes Feld (erstellt mit der Funktion count(*)). Gruppieren nach Klauselwissen MySQL sortiert und gruppiert Daten nach vend_id. Dies führt dazu, dass num_prods einmal für jede vend_id und nicht für die gesamte Tabelle berechnet wird. Wie Sie der Ausgabe entnehmen können, verfügt Lieferant 1001 über drei Produkte, Lieferant 1002 über zwei Produkte, Lieferant 1003 über sieben Produkte und Lieferant 1005 über zwei Produkte.

Da „Gruppieren nach“ verwendet wird, ist es nicht erforderlich, jede zu berechnende und zu bewertende Gruppe anzugeben. Das System erledigt dies automatisch. Die „group by“-Klausel veranlasst MySQL, die Daten zu gruppieren und dann jede Gruppe anstelle der gesamten Ergebnismenge zu aggregieren.

Bevor Sie die Group-by-Klausel verwenden, müssen Sie einige wichtige Regeln kennen:

1. Die Group-by-Klausel kann eine beliebige Anzahl von Spalten enthalten. Dies ermöglicht die Verschachtelung von Gruppen und bietet eine detailliertere Kontrolle über die Gruppierung von Daten.

2. Wenn Gruppen in der Group by-Klausel verschachtelt sind, werden die Daten in der zuletzt angegebenen Gruppe zusammengefasst. Mit anderen Worten: Beim Erstellen einer Gruppe werden alle angegebenen Spalten zusammen berechnet (daher können keine Daten aus einzelnen Spalten abgerufen werden).

3. Jede in der Group-by-Klausel aufgeführte Spalte muss eine Suchspalte oder ein gültiger Ausdruck sein (jedoch keine Aggregatfunktion). Wenn Sie in „select“ einen Ausdruck verwenden, müssen Sie denselben Ausdruck in der „group by“-Klausel angeben. Aliase können nicht verwendet werden.

4. Mit Ausnahme von Aggregatberechnungsanweisungen muss jede Spalte in der SELECT-Anweisung in der Group-by-Klausel angegeben werden.

5. Wenn in der Gruppierungsspalte ein NULL-Wert vorhanden ist, wird NULL als Gruppierung zurückgegeben. Wenn eine Spalte mehrere Zeilen mit NULL-Werten enthält, werden diese gruppiert.

6. Die Group-By-Klausel muss nach der Where-Klausel und vor der Order-By-Klausel stehen.

[Verwandte Empfehlungen]

  1. MySQL-Datengruppierung: Filtergruppierung

  2. MySQL Datengruppierung und -sortierung sowie Reihenfolge der SELECT-Klausel

Das obige ist der detaillierte Inhalt vonMySQL-Datengruppierung: Erstellen Sie eine Gruppe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn