Heim  >  Artikel  >  Datenbank  >  Gruppierung und Sortierung von MySQL-Daten und Reihenfolge der SELECT-Klauseln

Gruppierung und Sortierung von MySQL-Daten und Reihenfolge der SELECT-Klauseln

巴扎黑
巴扎黑Original
2017-05-09 13:50:002303Durchsuche

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.

Gruppierung und Sortierung von MySQL-Daten und Reihenfolge der SELECT-Klauseln

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: Gruppierung und Sortierung von MySQL-Daten und Reihenfolge der SELECT-Klauseln

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 Gruppierung und Sortierung von MySQL-Daten und Reihenfolge der SELECT-Klauseln, 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.

Gruppierung und Sortierung von MySQL-Daten und Reihenfolge der SELECT-Klauseln

[Verwandte Empfehlungen]Gruppierung und Sortierung von MySQL-Daten und Reihenfolge der SELECT-Klauseln

    MySQL-Datengruppierung: Gruppierung erstellen
  1. MySQL-Datengruppierung: Gruppierung filtern

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!

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