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
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. | DieORDER 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. |