Empfohlen, 2020

Tipp Der Redaktion

Unterschied zwischen Group By und Order By in SQL

SQL ermöglicht die Organisation der durch die Abfrage erhaltenen Daten. Wir haben zwei Klauseln zum Organisieren der aus der Abfrage erhaltenen Daten, nämlich Group By und Order By-Klausel. Der Punkt, der die Group By- und Order By-Klausel unterscheidet, ist, dass die Group By- Klausel verwendet wird, wenn die Aggregatfunktion auf mehr als eine Gruppe von Tupeln angewendet werden soll. Die Order By- Klausel wird verwendet, wenn die von der Abfrage erhaltenen Daten sortiert werden sollen. Lassen Sie uns einige Unterschiede zwischen der Group By-Klausel und der Order By-Klausel mit Hilfe der unten gezeigten Vergleichstabelle diskutieren.

Vergleichstabelle

VergleichsgrundlageGruppiere nachSortieren nach
BasicGroup By wird verwendet, um die Gruppe der Tupel zu bilden.Order By wird verwendet, um die als Ergebnis einer Abfrage erhaltenen Daten in sortierter Form anzuordnen.
AttributAttribut unter Aggregatfunktion kann nicht in der Klausel Group By enthalten sein.Attribut unter Aggregat kann in Order By-Klausel sein.
BodenAus Gründen der Ähnlichkeit der Attributwerte.Aus Gründen der aufsteigenden und absteigenden Reihenfolge.

Definition von Group By-Klausel

Aggregatfunktionen wie avg, min, max, sum, count werden auf die einzelnen Tupel angewendet. Wenn Sie die Aggregatfunktionen auf die Gruppe der Tupel anwenden möchten, haben wir dafür eine Group by-Klausel. Group by-Klausel gruppiert die Tupel, die denselben Attributwert haben.

Bei der Group By- Klausel ist Folgendes zu beachten: Stellen Sie sicher, dass das Attribut unter der Group By- Klausel in der SELECT- Klausel enthalten sein muss, jedoch nicht unter einer Aggregatfunktion . Wenn die Group By-Klausel ein Attribut enthält, das nicht unter der SELECT-Klausel steht oder wenn es unter der SELECT-Klausel, sondern unter der Aggregatfunktion steht, wird die Abfrage fehlerhaft. Daher können wir sagen, dass die Group By-Klausel immer zusammen mit der SELECT-Klausel verwendet wird.

Nehmen wir ein Beispiel, um die Group By-Klausel zu verstehen.

SELECT Abteilung _ID, avg (Gehalt) als avg_salary von der Teacher Group nach Department_ID.

Sie sehen, dass zunächst ein Zwischenergebnis gebildet wird, das die Abteilungen gruppiert hat.

Als Nächstes wird die Aggregatfunktion avg auf jede Abteilungsgruppe angewendet und das Ergebnis wird unten angezeigt.

Definition der Reihenfolge nach Klausel

Order By-Klausel wird verwendet, um Daten anzuzeigen, die von einer Abfrage in der sortierten Reihenfolge abgerufen wurden. Die Order By-Klausel wird wie die Group By-Klausel auch in Zusammenarbeit mit der SELECT-Klausel verwendet. Wenn Sie die Sortierreihenfolge nicht erwähnen, sortiert die Order By-Klausel die Daten in aufsteigender Reihenfolge. Sie können die aufsteigende Reihenfolge als auf und absteigend als absteigend angeben .

Lassen Sie uns die Funktionsweise der Order By-Klausel anhand des folgenden Beispiels verstehen. Wir haben eine Teacher-Tabelle, und ich werde die Sortierung auf die beiden Spalten Department_Id und Salary der Teacher-Tabelle anwenden.

Wählen Sie Abteilungs-ID, Gehalt von der Lehrer-Bestellung nach Abteilungs-ID auf, Gehalt ab.

Sie können das zuerst sehen, es ordnet die Abteilung _ID in aufsteigender Reihenfolge an und ordnet dann die Gehälter in derselben Abteilung in absteigender Reihenfolge an.

Hauptunterschiede zwischen Group By und Order By

  1. Group By-Klausel gruppiert die Menge von Tupeln in einer Beziehung, die unter der SELECT-Klausel stehen. Auf der anderen Seite sortiert die Order By-Klausel das Ergebnis der Abfrage in aufsteigender oder absteigender Reihenfolge.
  2. Das Attribut unter der Aggregatfunktion kann nicht unter der Klausel Group By liegen, wohingegen das Attribut unter der Aggregatfunktion unter der Klausel Order By stehen kann.
  3. Die Gruppierung von Tupeln erfolgt auf der Grundlage der Ähnlichkeit zwischen den Attributwerten der Tupel. Andererseits erfolgt die Sortierung oder Sortierung nach aufsteigender oder absteigender Reihenfolge.

Fazit:

Wenn Sie die Gruppe der Tupel bilden möchten, müssen Sie die Group By-Klausel verwenden. Wenn Sie die Daten einer einzelnen Spalte oder von mehr als einer Spalte in der Tupelgruppe aufsteigend oder absteigend sortieren möchten, muss die Order By-Klausel verwendet werden.

Top