Group BY
-
Hallo,
wenn man group by verwendet kann man nur spalten ausgeben die entweder in der Aggregatfunktion vorkommen oder in der group by Klausel . Warum ist denn das so ?
-
Gegenfrage: Wie soll es denn sonst deiner Meinung nach ablaufen, wenn es anders möglich wäre?
-
ich kann den Namen nicht ausgeben wenn er nicht in group by steht.
Aber warum nicht ? Was spricht dagegen ?
-
GROUP BY ist keine Sortierung, sondern eine Zusammenfassung der Datensätze. Das heißt, alle Datensätze, die in den Gruppierungs-Spalten übereinstimmen, bilden eine Gruppe - und der Rest der SELECT-Anweisung arbeitet mit diesen Gruppen.
-
blurry333 schrieb:
ich kann den Namen nicht ausgeben wenn er nicht in group by steht.
Aber warum nicht ? Was spricht dagegen ?
Hier kam eine Gegenfrage, hast du sie gesehen?
mytable (id - name - color - points) 1 - Müller - yellow - 50 2 - Bauer - yellow - 100 3 - Muster - green - 150 SELECT color, sum(points) FROM mytable GROUP BY color Ergebnis: yellow - 150 green - 150
Wie sollen in diese zwei Zeilen die drei Namen passen? Nicht. Und dementsprechend kannst du eben den Namen nicht ausgeben, wie soll das dann auch aussehen.
MfG SideWinder
-
und nach was gruppiert er denn wenn ich sage group by name,wohnort,beruf
-
Dann gruppiert er nach Alter, Haarfarbe und Automarke.
-
wenn ich nur sage group by name dann schaut er wo alle namen gleich sind
aber was macht er wenn group by mehrere argumente hat
-
blurry333 schrieb:
wenn ich nur sage group by name dann schaut er wo alle namen gleich sind
aber was macht er wenn group by mehrere argumente hat
Jede unterschiedliche Kombination aus den Werten der drei Felder wird eine Gruppe.
-
group by name,city,phone
gäbe es also 8 Gruppen ?
-
blurry333 schrieb:
group by name,city,phone
gäbe es also 8 Gruppen ?
Uh, könnte das unter Umständen von deinen Daten abhängen? Nur so eine Idee.
Damit werden alle Leute mit der gleichen Telefonnummer, dem gleichen Namen und der gleichen Stadt zu je einer Gruppe zusammengefasst.
Vmtl. wird damit die Anzahl der Gruppen der Anzahl von Datensätzen entsprechen, nur wenn mehrere Leute sowohl den gleichen Namen, als auch die gleiche Stadt, als auch die gleiche Telefonnummer haben, nicht.