SQL- Anfrage?


22.11.2022, 14:21
Erstmal passt meine Erklärung:

Natürlich sollte das eine Frage sein ;)

1 Antwort

Vor id und name steht "group by" du sortierst damit also nicht, sondern du gruppierst. Das musst du machen, weil in einer gruppierten Abfrage für jede Spalte etwas passieren muss. Also jede Spalte muss entweder gruppiert werden oder das Ergebnis einer Aggregatfunktion (count, sum etc.) sein.

Die eigentliche Sortierung (ORDER BY) hast du noch gar nicht drinstehen.


theooooo306 
Fragesteller
 22.11.2022, 14:29
Vor id und name steht "group by" du sortierst damit also nicht, sondern du gruppierst. 

Ah stimmt. Hab es verwechselt mit Order by

lso jede Spalte muss entweder gruppiert werden oder das Ergebnis einer Aggregatfunktion (count, sum etc.) sein.

Aber nur wenn ich gruppiere?

Die eigentliche Sortierung (ORDER BY) hast du noch gar nicht drinstehen.

Oh stimmt muss ich noch ergänzen

0
daCypher  22.11.2022, 14:32
@theooooo306

Ja, nur wenn du gruppierst oder eine Aggregatfunktion verwendest. Wobei ich meine, dass irgendein Datenbanksystem, mit dem ich mal gearbeitet hab, einfach den erstbesten Wert genommen hat, wenn man nach einer Spalte nicht gruppiert hat. Das ist aber ziemlich fehleranfällig.

1
theooooo306 
Fragesteller
 22.11.2022, 14:33
@daCypher

Ah ok, danke. Mir ist grad aufgefallen, wenn ich die Anzahl berechne , wie sortier ich diese dann ?

0
daCypher  22.11.2022, 14:34
@theooooo306

Wenn dein Datenbanksystem kein "ORDER BY Anzahl DESC" akzeptiert, dann mit "ORDER BY count(role) DESC"

1
theooooo306 
Fragesteller
 22.11.2022, 14:37
@daCypher

ah ok, da ist mein problem. Ich hatte ORDER BY Anzahl DESC. Macht aber ja kein sinn, weil die Spalte "existiert " ja noch nicht. Ist es nicht etwas ineffizient , wenn man zweimal zählen muss?

0