erklärung group by klausel

Diskutiere erklärung group by klausel im Datenbanken Forum im Bereich Software Forum; hi leutz, habe folgendes programm geschrieben select treibstoff.bezeichnung, avg(tanken.liter) as [mittelwert von liter] from treibstoff...
Gnoovy

Gnoovy

Threadstarter
Dabei seit
04.02.2002
Beiträge
2.182
Alter
38
hi leutz,


habe folgendes programm geschrieben


select treibstoff.bezeichnung, avg(tanken.liter) as [mittelwert von liter]

from treibstoff inner join tanken on treibstoff.treibstoffart=tanken.treibstoffart


group by treibstoff.bezeichnung

;


und


select treibstoff.bezeichnung, sum([treibstoff.verrechnungspreis]) as summe
from tanken inner join treibstoff on tanken.treibstoffart=treibstoff.treibstoffart
group by treibstoff.bezeichnung;


kann mir nun einer erklären, für was ich jetzt genau die group by klausel benötige? mein verständnis
er gruppiert, fast zusammen, die ganzen bezeichnungen von der tabelle treibstoff und errechnet dan den mittelwert / summe, ist das so richtig? aber warum geht es nicht auch ohne group by, also sprich diesen befehl jetzt einfach weglassen?

Wäre cool, wenn mir da einer den zusammenhang noch a bissle verdeutlichen könnte.
 
Flo

Flo

Dabei seit
08.11.2001
Beiträge
757
Alter
39
Also das ist nun ja nur ne vermutung von mir, aber ich denke das hat alles schon seinen grund....

du mußt dir nun vorstellen deine tabelle wäre so aufgebaut:

[Treibstoff] [Liter1] [Liter2] [Liter3]
Diesel 20 10 5
Benzin 20 10 5

so konntest du mit deiner abfrage ohne group klausel ja auch mit hilfe von deinem AVG rausbekommen wie die durchschnitts literzahl ist. logisch oder ??? er macht also nen mittelwert aus allen feldern was hinter dem treibstoff attribut sind.

wenn nun deine tabelle so aufgebaut wäre:

[Treibstoff] [Liter]
Diesel 10
Benzin 10
Diesel 80
Diesel 50
Benzin 6
usw..

wie soll denn da nun deine abfrage ohne die group klausel einen mittelwert aus der literanzahl vom diesel ausgeben ??? das würde nicht gehen.
also gruppiert er dir die diesel zu einem datensatz zusammen und ermittelt dann daraus den mittelwert.

im endefkt gruppiert dir die group klausel also mehrere datensätze zu einem zusammen um daraus dann den mittelwert zu bilden. Könnte nun aber auch die count oder eben die sum klausel sein wies bei deinem zweiten beispiel auch ist.

Achja übrigends... ich weiß ja net wer die select gemacht hat ob des du warsch oder ob des mal wieder ne hausaufgabe ist *lol* aber egal.... es gibt da noch etwas was man bei der group klausel anfügen sollte...
weil deine select sollte ja eigentlich nur den mittelwert aus den werten ermitteln, wenn mindestens 2 werte in der datenbank liegen, weil wie soll er aus einem wert einen mittelwert errechnen ???

deshalb sollte man die having klausel mit einfügen..

das es also so aussieht:

GROUP BY treibstoff.bezeichnung HAVING COUNT(tanken.liter) >1;

also er soll nur gruppieren und den mittelwert ermitteln wenn er mehr als einen wert bei den getankten litern hat.

ich hoff des isch nu au alles richtig erklärt..... bin mir net so 100 prozent sicher...

ansonsten gibts da sicher einige howtos im inet zu sql oder du nimmst einfach mal kurz access zur hand und testest das, das ist eh immer das beste

:aah
 
T

ttimsch

Dabei seit
19.07.2004
Beiträge
16
Damit er weiß, über was er den Mittelwert/summe bilden muß, nämlich über jeweils eine Bezeichnung

Also alle Diesel zusammenfassen (group by) und drüber die summe/Mittelwert bilden usw.
 
Thema:

erklärung group by klausel

erklärung group by klausel - Ähnliche Themen

Left 4 Dead - Weiterer Patch erschienen: Hallo Auf diejenigen unter euch die Left 4 Dead zocken, wartet beim Starten des Spieles ein neuer Patch. Der Patch bezieht sich Hauptsachlich...

Sucheingaben

group by klausel erklärung

Oben