Wann verwenden Sie welche im Allgemeinen? Beispiele sind ausdrücklich erwünscht!
Ich beziehe mich also auf MySql, kann mir aber nicht vorstellen, dass das Konzept auf einem anderen DBMS anders ist
ORDER BY ändert die Reihenfolge, in der Artikel zurückgegeben werden.
GROUP BY aggregiert Datensätze nach den angegebenen Spalten, sodass Sie Aggregationsfunktionen für nicht gruppierte Spalten (wie SUM, COUNT, AVG usw.) ausführen können.
ORDER BY ändert die Reihenfolge, in der Artikel zurückgegeben werden.
GROUP BY aggregiert Datensätze nach den angegebenen Spalten, sodass Sie Aggregationsfunktionen für nicht gruppierte Spalten (wie SUM, COUNT, AVG usw.) ausführen können.
quelle
age
Spalte enthält, wobei Peters ein unterschiedliches Alter hat und die Abfrage SELECT NAME, AGE FROM TABLE GROUP BY NAME lautet?ORDER BY: Sortieren Sie die Daten in aufsteigender oder absteigender Reihenfolge.
Betrachten Sie die Tabelle CUSTOMERS :
Das folgende Beispiel zeigt das Ergebnis in aufsteigender Reihenfolge nach NAME:
Dies würde das folgende Ergebnis erzeugen:
GROUP BY: Ordnen Sie identische Daten in Gruppen an.
Die Tabelle CUSTOMERS enthält jetzt die folgenden Datensätze mit doppelten Namen:
Wenn Sie identische Namen zu einem einzigen Namen gruppieren möchten, lautet die GROUP BY-Abfrage wie folgt:
Dies würde das folgende Ergebnis ergeben: (Bei identischen Namen würde der letzte ausgewählt und schließlich die Spalte in aufsteigender Reihenfolge sortiert.)
wie Sie gefolgert haben, dass es ohne SQL-Funktionen wie sum, avg etc .. keinen Nutzen hat.
Gehen Sie diese Definition durch, um die ordnungsgemäße Verwendung von GROUP BY zu verstehen:
Wenn Sie nun den Gesamtlohn für jeden Kunden (Namen) wissen möchten, lautet die GROUP BY-Abfrage wie folgt:
Dies würde das folgende Ergebnis ergeben: (Summe der Gehälter mit identischen Namen und Sortieren der Spalte NAME nach Entfernen identischer Namen)
quelle
Der Unterschied ist genau das, was der Name impliziert: Eine Gruppe nach führt eine Gruppierungsoperation aus und eine Reihenfolge nach Sortierung.
Wenn Sie dies tun
SELECT * FROM Customers ORDER BY Name
, wird die Ergebnisliste nach dem Namen des Kunden sortiert.Wenn Sie dies tun, erhalten
SELECT IsActive, COUNT(*) FROM Customers GROUP BY IsActive
Sie eine Anzahl aktiver und inaktiver Kunden. Die Gruppe aggregierte die Ergebnisse basierend auf dem von Ihnen angegebenen Feld.quelle
Sie haben eine völlig andere Bedeutung und sind überhaupt nicht wirklich verwandt.
Mit ORDER BY können Sie die Ergebnismenge nach verschiedenen Kriterien sortieren, z. B. zuerst nach Namen von az sortieren und dann nach dem höchsten bis niedrigsten Preis sortieren.
(BESTELLEN NACH Name, Preis DESC)
Mit GROUP BY können Sie Ihre Ergebnismenge in logische Gruppen gruppieren und dann aggregierte Abfragen für diese Gruppen ausführen. Sie können beispielsweise alle Mitarbeiter auswählen, sie nach ihrem Arbeitsplatz gruppieren und das Durchschnittsgehalt aller Mitarbeiter jedes Arbeitsplatzes berechnen.
quelle
Einfach,
ORDER BY
ordnet die Daten undGROUP BY
Gruppen an oder kombiniert die Daten.ORDER BY
ordnet die Ergebnismenge gemäß dem genannten Feld standardmäßig in aufsteigender Reihenfolge an.Angenommen, Sie lösen eine Abfrage aus, da
ORDER BY (student_roll_number)
dies zu einer aufsteigenden Reihenfolge der Rollennummern der Schüler führt. Hier,student_roll_number
Eingabe mehrmals erfolgen.In diesem
GROUP BY
Fall verwenden wir dies mit Aggregatfunktionen und gruppieren die Daten gemäß der Aggregatfunktion, und wir erhalten das Ergebnis. Wenn hier unsere Abfrage hatSUM (marks)
zusammen mitGROUP BY (student_first_name)
ihm wird die Summe der Noten der Schüler zeigen zu jeder Gruppe gehören (in der alle Mitglieder einer Gruppe die gleichen Vornamen haben).quelle
GROUP BY wird verwendet, um Zeilen in einer Auswahl zu gruppieren, normalerweise beim Aggregieren von Zeilen (z. B. Berechnen von Summen, Durchschnittswerten usw. für eine Reihe von Zeilen mit denselben Werten für einige Felder).
ORDER BY wird verwendet, um die Zeilen zu ordnen, die aus einer select-Anweisung resultieren.
quelle
Einige gute Beispiele dort. Ich möchte nur mein eigenes aus dem Webcheatsheet hinzufügen, das gute, klare Beispiele enthält, und Sie können Ihr eigenes SQL ausführen.
SQL Order By
SQL Group By
quelle
ORDER BY
zeigt ein Feld in aufsteigender oder absteigender Reihenfolge. WährendGROUP BY
zeigt die gleichen Feldnamen, IDs usw. in nur einer Ausgabe.quelle
quelle
Es sollte beachtet werden, dass dies
GROUP BY
nicht immer erforderlich ist, da Sie (zumindest in PostgreSQL und wahrscheinlich in anderen SQL-Varianten)ORDER BY
eine Liste verwenden können und diese weiterhinASC
oderDESC
pro Spalte verwenden können ...quelle