Database
 sql >> Datenbank >  >> RDS >> Database

GROUP BY vs. ORDER BY

Die GROUP BY-Klausel und die ORDER BY-Klausel in SQL werden verwendet, um Daten anzuordnen, die durch SQL-Abfragen erhalten wurden. Der wichtige Unterschied zwischen der GROUP BY-Klausel und der ORDER BY-Klausel besteht darin, dass die GROUP BY-Klausel angewendet wird, wenn wir eine Aggregatfunktion in einer SQL-Abfrage für mehr als einen Satz von Zeilen verwenden möchten. Im Gegensatz dazu wird die ORDER BY-Klausel angewendet, wenn wir die durch die Abfrage erhaltenen Daten in der sortierten Reihenfolge erhalten möchten. Bevor wir zu Vergleichstabellen übergehen, werden wir zuerst diese SQL-Klauseln verstehen.

GROUP BY-Klausel

Die GROUP BY-Anweisung in SQL verwendet Abfragen, um Daten innerhalb von Attributwerten anzuordnen. Normalerweise verwenden wir die GROUP BY-Klausel mit der SELECT-Anweisung. Wir müssen die GROUP BY-Klausel immer nach der WHERE-Klausel platzieren. Außerdem wird es auch vor die ORDER BY-Klausel gesetzt.

Wir können die GROUP BY-Klausel häufig mit Aggregatfunktionen wie SUM, AVG, MIN, MAX und COUNT verwenden, um eine Ausgabe aus der Datenbank zu erzeugen. Die Abfrage für die GROUP BY-Klausel ist eine gruppierte Abfrage und gibt eine einzelne Zeile für jedes gruppierte Objekt zurück.

Nachfolgend finden Sie die Syntax zur Verwendung der GROUP BY-Klausel in einer SQL-Abfrage

SELECT COLUMNNAME, FUNCTION(COLUMNNAME) FROM TABLENAME WHERE CONDITION GROUP BY COLUMNNAME;

Lassen Sie uns die GROUP BY-Klausel anhand einiger Beispiele verstehen. Betrachten Sie die folgenden Tabellen zusammen mit den angegebenen Datensätzen.

Tabelle:Mitarbeiter

MITARBEITERID FIRST_NAME NACHNAME GEHALT STADT ABTEILUNG MANAGERID WORKING_HOURS GESCHLECHT
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1 12 F
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1 9 M
1003 NICHIL VANI 50000 JAIPUR FMW 2 10 M
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1 10 F
2002 BHAVESH JAIN 65500 PUNE FMW 2 12 M
2003 RUSCHIKA JAIN 50000 MUMBAI TESTEN 4 9 F
3001 PRANOTI SCHENDE 55500 PUNE JAVA 3 9 F
3002 ANUJA WO 50500 JAIPUR FMW 2 9 F
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3 12 M
4001 RAJESH GOLD 60500 MUMBAI TESTEN 4 10 M

Beispiel 1: Angenommen, wir möchten die Gehaltssummen der Mitarbeiter in einer bestimmten Stadt für die oben genannten Daten wissen. Dazu führen wir die folgende Abfrage wie folgt aus:

SELECT CITY, SUM(SALARY) FROM EMPLOYEES GROUP BY CITY;

Diese Abfrage hat zunächst ein Ergebnis gebildet, das die Stadt gruppiert hat. Als nächstes die SUMME Die Funktion wird für jede Gruppe von Städten ausgeführt, und schließlich erhalten wir die gewünschten Ergebnisse, wie unten gezeigt:

Beispiel 2: Angenommen, wir möchten das maximale Gehalt der Mitarbeiter in einer bestimmten Abteilung für die oben genannten Daten wissen. Dazu führen wir die folgende Abfrage wie folgt aus:

SELECT DEPARTMENT, MAX(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT;

Diese Abfrage hat zunächst ein Ergebnis gebildet, das die Abteilung gruppiert hat. Als nächstes das MAX Die Funktion wird für jede Gruppe der Abteilung ausgeführt, und schließlich erhalten wir die gewünschten Ergebnisse, wie unten gezeigt:

ORDER BY-Klausel

Die GROUP BY-Klausel und die ORDER BY-Klausel könnten mit der SELECT-Anweisung verwendet werden. In SQL-Abfragen haben wir die ORDER BY-Klausel verwendet, um die von der Abfrage zurückgegebenen Datensätze in aufsteigender oder absteigender Reihenfolge zu sortieren. Wenn wir die Sortierreihenfolge nicht erwähnt hätten, würde das gesamte Ergebnis standardmäßig in aufsteigender Reihenfolge sortiert werden.

Nachfolgend finden Sie die Syntax zur Verwendung der ORDER BY-Klausel in einer SQL-Abfrage

SELECT * FROM TABLENAME ORDER BY [ASC | DESC];

Lassen Sie uns die ORDER BY-Klausel anhand einiger Beispiele verstehen. Betrachten Sie die folgenden Tabellen zusammen mit den angegebenen Datensätzen.

Tabelle:Mitarbeiter

MITARBEITERID FIRST_NAME NACHNAME GEHALT STADT ABTEILUNG MANAGERID WORKING_HOURS GESCHLECHT
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1 12 F
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1 9 M
1003 NICHIL VANI 50000 JAIPUR FMW 2 10 M
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1 10 F
2002 BHAVESH JAIN 65500 PUNE FMW 2 12 M
2003 RUSCHIKA JAIN 50000 MUMBAI TESTEN 4 9 F
3001 PRANOTI SCHENDE 55500 PUNE JAVA 3 9 F
3002 ANUJA WO 50500 JAIPUR FMW 2 9 F
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3 12 M
4001 RAJESH GOLD 60500 MUMBAI TESTEN 4 10 M

Beispiel 1: Angenommen, wir möchten das Ergebnis in der sortierten Reihenfolge anordnen, entweder aufsteigend oder absteigend, basierend auf der Vornamenspalte. In diesem Fall möchten wir die ORDER BY-Klausel verwenden, um das Ergebnis zu erhalten. Dazu führen wir die folgende Abfrage wie folgt aus:

SELECT * FROM EMPLOYEES ORDER BY FIRST_NAME ASC;

Hauptunterschied zwischen GROUP BY und ORDER BY

Die folgenden Punkte unterscheiden zwischen den Klauseln GROUP BY und ORDER BY:

  • Die GROUP BY-Anweisung in SQL wird verwendet, um die Datensätze basierend auf einem ähnlichen Wert in einer bestimmten Spalte zu gruppieren. Andererseits wird die ORDER BY-Klausel in SQL verwendet, um die Anzeigeergebnisse in aufsteigender oder absteigender Reihenfolge zu sortieren.
  • Beim Durchführen einer Abfrage mit der GROUP BY-Klausel in einer SQL-Abfrage ist es zwingend erforderlich, die Aggregatfunktion zu verwenden. Andererseits ist es bei Verwendung der ORDER BY-Klausel in SQ nicht zwingend erforderlich, eine Aggregatfunktion zu verwenden.
  • Die GROUP BY-Klausel wird in der SQL-Abfrage immer nach der WHERE-Klausel, aber vor der ORDER BY-Klausel platziert. Andererseits wird die ORDER BY-Klausel immer nach der GROUP BY-Klausel platziert.

Vergleichsdiagramm

Die
SR.NO GRUPPE NACH BESTELLEN BEI
1 Die GROUP BY-Klausel wird verwendet, um die Zeilen mit ähnlichen Werten zu gruppieren. Die ORDER BY-Klausel wird verwendet, um das Ergebnis entweder in absteigender oder aufsteigender Reihenfolge zu sortieren
2 Es steuert die Darstellung von Zeilen Es steuert die Darstellung von Spalten
3 THE GROUP BY-Klausel steht immer vor der ORDER BY-Klausel.ORDER BY-Klausel wird immer nach der GROUP BY-Klausel platziert.
4 Es ist zwingend erforderlich, eine Aggregatfunktion zu verwenden Nicht zwingend erforderlich, um eine Aggregatfunktion zu verwenden
5 Das Attribut darf nicht unter der Aggregatfunktion liegen in der GROUP BY-Anweisung. Das Attribut kann unter der Aggregatfunktion in der Anweisung ORDER BY stehen.