Hallo zusammen,
muss nächste Woche EDV Klausur schreiben und bin mir nicht ganz im klaren was der Befehl
GROUP BY in einem SQL befehl bewirkt.
Finde dazu nämlich nichts in meinem Skript
Danke für antworten.
Hallo zusammen,
muss nächste Woche EDV Klausur schreiben und bin mir nicht ganz im klaren was der Befehl
GROUP BY in einem SQL befehl bewirkt.
Finde dazu nämlich nichts in meinem Skript
Danke für antworten.
Hi!
Ich probier's mal, allerdings ist meine Sichtweise der Dinge nicht immer Leerbuchkonform. ;-)
Eine SQL-Anweisung liefert eine Menge an Datensätzen, das ist ja soweit klar, oder?
Es kann aber gewünscht sein, mehrere Datensätze zu einem neuen zusammenzufassen, quasi sie neu zu gruppieren. Genau das macht GROUP BY in einer SQL-Abfrage.
beispiel:
In einer Tabelle stehen die Adressen von Kunden. Ein Feld ist die Postleitzahl. Nun möchtest du eine Abfrage machen die ausgeben soll, welche PLZ vorhanden sind und wieviele Personen zur jeweiligen PLZ gehören. (Nur Kunden in Deutschland).
Die Anweisunf muss nun die Summe an Personen zurückliefern, gruppiert (also zusammengefasst) nach der PLZ.
select PLZ, count(kundennr)
from Kunden
where Land = "D"
group by PLZ
Nein, ich denke auch nicht, dass mein SQL-Statement 100% ok ist, aber es geht um's Prinzip und ich hab' keine Datenbank unter den Fingern - ein Embeded SQL-Statement nach Baan 4GL-Syntax würde dir warscheinlich auch nicht helfen. ;-)
Egal, ich hoffe du verstehst was ich meine.
Mit GROUP BY werden aus den verschiedenen datensätzen mit der gleichen Postleitzahl jeweils ein Datensatz "erzeugt", der dann ausgegeben wird.
Ich wdenke HAVING ist auch SQL-Standard. Mit HAVING kann man nun noch quasi zusätzliche Bedingungen für die Ausgabe der zusammengefassten datensätze festöegen:
having sum(Kundennr) > 5
Jetzt würden nur PLZ angezeigt, die mind. 5 Kunden "besitzen".
Bis denn
Andreas