Group by vs. order by

Was ist der Unterschied?

Hi,

mit GROUP BY gruppierst du deine Selektion, mit ORDER BY sortierst du deine Selektion.

RP

Was ist der Unterschied?

Was ist der Unterschied?

Mit ORDER BY werden alle den Selektionskriterien entsprechenden Datensätze sortiert nach den angegebenen Spalten ausgegeben.

Mit GROUP BY werden die Summen der gleichen Einträge pro angegebener Spalte ausgegeben, also pro Summe eine Zeile.

Das ist in der Theorie vielleicht nicht so einfach zu verstehen, am besten probierst du es einmal aus, falls du eine Gelegenheit dazu hast.

MfG
Roland

Sagt eigendlich schon der Name: order by dient zum sortieren und group by zum gruppieren.

Dazu muss man wissen, dass es in SQL bestimmte Funktionen gibt, auf die die Gruppierung einen Einfluss hat. Z.B. sind das sum() oder max() …
Im Einzelfall kann natürlich das Ergebnis von einer Gruppierung aussehen, wie das eines Order by. Das liegt daran, dass für die Durchführung der Gruppierung intern immer auch zuerst sortiert wird. Wenn dann keine Funktion wie z.B. sum() im Statement auftaucht, dann ist das Ergebnis das gleiche, wie bei einer entsprechenden Sortierung.

Kleines Beispiel für ne Gruppierung:

Stellen wir uns vor wir haben ne Tabelle Bestellung von der uns nun mal nur die beiden Spalten Gruppe und Preis interessieren, weil ein Report erstellt werden soll, wieviel Unsatz in welcher Artikel-Gruppe gemacht wurde.

Gruppe Preis
1 10,-
2 15,-
1 5,-
3 5,-
2 1,-
1 10,-

Dann liefert das SQL-Statemen

select gruppe, sum( Preis ) as Umsatz from Bestellung group by Gruppe

Gruppe Umsatz
1 25,-
2 16,-
3 5,-

Das Ergebnis ist durch das group by automatisch nach gruppe sortiert.

Gruß
Benky