MySQL-Gruppierung und -Sortierung
Obwohl GROUP BY und ORDER BY oft die gleiche Aufgabe erfüllen, sind sie sehr unterschiedlich. Die folgende Tabelle fasst ihre Unterschiede zusammen.
Der erste in der Tabelle aufgeführte Unterschied ist äußerst wichtig. Wir stellen häufig fest, dass nach GROUP BY gruppierte Daten tatsächlich in Gruppenreihenfolge ausgegeben werden. Dies ist jedoch nicht immer der Fall und wird von der SQL-Spezifikation auch nicht gefordert. Darüber hinaus können Benutzer verlangen, dass die Elemente in einer anderen als der gruppierten Reihenfolge sortiert werden. Nur weil Sie die Daten auf eine bestimmte Weise gruppieren (um einen bestimmten gruppierten Gesamtwert zu erhalten), bedeutet das nicht, dass Sie die Ausgabe auf die gleiche Weise sortieren müssen. Eine explizite ORDER BY-Klausel sollte bereitgestellt werden, auch wenn ihre Wirkung die gleiche ist wie eine GROUP BY-Klausel. ORDER BY nicht vergessen: Im Allgemeinen sollten Sie bei Verwendung der GROUP BY-Klausel
auch eine ORDER BY-Klausel angeben. Nur so kann eine korrekte Sortierung der Daten gewährleistet werden. Verlassen Sie sich niemalsniemals ausschließlich auf GROUP BY, um Ihre Daten zu sortieren. Um die Verwendung von GROUP BY und ORDER BY zu veranschaulichen, schauen Sie sich bitte ein Beispiel an. Die folgende SELECT-Anweisung ähnelt den vorherigen Beispielen. Es ruft die Bestellnummer und den Gesamtbestellpreis von Bestellungen mit einem Gesamtbestellpreis größer oder gleich 50 ab:
Eingabe:
Ausgabe:
select order_num,sum(quantity*item_price) as ordertotal from orderitems group by order_num having sum(quantity*item_price) >= 50;
Um die Ausgabe nach Gesamtbestellpreis zu sortieren, müssen Sie eine ORDER BY-Klausel hinzufügen, wie unten gezeigt:
Eingabe:Ausgabe:
select order_num,sum(quantity*item_price) as ordertotal from orderitems group by order_num having sum(quantity*item_price) >= 50 order by ordertotal;
Analyse: In diesem Beispiel wird die GROUP BY-Klausel verwendet, um die Daten nach Auftragsnummer (Spalte order_num) zu gruppieren , sodass die SUM( *) Funktion kann den Gesamtbestellpreis zurückgeben. Die HAVING-Unterklausel
filtert die Daten, sodass nur Bestellungen mit einem Gesamtbestellpreis größer oder gleich 50 zurückgegeben werden. Verwenden Sie abschließend die ORDER BY-Klausel, um die Ausgabe zu sortieren. Reihenfolge der SELECT-Klauseln
Sehen wir uns die Reihenfolge der Klauseln in der SELECT-Anweisung an. Tabelle 13-2 listet die bisher erlernten Klauseln in der Reihenfolge auf, in der in einer SELECT-Anweisung verwendet werden muss.
[Verwandte Empfehlungen]
Das obige ist der detaillierte Inhalt vonGruppierung und Sortierung von MySQL-Daten und Reihenfolge der SELECT-Klauseln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!