[ORACLE] GROUP BY - unsortierte Ergebnisse?
-
Ich wurde gerade sehr vom Ergebnis einer SQL-Abfrage bei einer ORACLE9-DB überascht, die das Ergebnis eines SELECT mit GROUP BY-Klausel unsortiert zurückgab - ich kannte es bisher nur so, dass ein GROUP BY ein ORDER BY mit den selben Attributen impliziert.
Ist das nicht (mehr) so?
-
Das war noch nie so. Ein Group by gruppiert und sortiert nicht. Solange kein Order by angegeben ist, liefert die Datenbank die Ergebnisse in einer zufälligen Reihenfolge. In der Regel ist es allerdings so, daß das zum Gruppieren die Daten sortiert werden und dadurch die Ergebnisse meistens sortiert sind. Man darf sich allerdings nicht darauf verlassen. Das ist auch unabhängig von der verwendeten Datenbank. Offensichtlich verwendet die neue Version eine anderen Gruppierungsstrategie. Das kann allerdings auch bei der alten Version passieren, wenn sich beispielsweise die Anzahl der Sätze verändert und die Datenbank dadurch einen anderen Algorithmus wählt.
Tntnet
-
Thanks... Wieder was gelernt!