Gruppierung
bestellung.csv
bestellid, buchid, menge: INTEGER
datum: DATETIME
Mit GROUP BY Attribut können in einer Tabelle Datensätze mit dem gleichen Attribut zusammengefasst werden. Damit kann man nicht mehr auf einzelne Datensätze zugreifen, sondern über eine Aggregatfunktion eine Aussage über eine Menge von Datensätzen erhalten.
- Es sollen alle Bestellungen, geordnet nach der buchid angezeigt werden.
- Wie man sieht, wurde das Buch mit der buchid=76 in den Jahren 2007 bis 2016 immer wieder bestellt. Wieviele Bücher wurden insgesamt bestellt? Die Aggregatfunktion SUM() in Verbindung mit WHERE hilft erst mal weiter:
- Es sollen aber für alle Bücher die vorhandene Menge angezeigt werden. Dazu gruppiert man über das Attribut buchid:
- Über JOIN lassen sich auch die Buchtitel anzeigen und über ORDER BY nach der Anzahl ordnen.
WICHTIG: Das bisherige NATURAL JOIN funktioniert hier nicht mehr. Die JOIN-Abfrage muss wieder komplett geschrieben werden:
tabelle1 JOIN tabelle2 ON tabelle1.attribut=tabelle2.attribut

- Wenn nun nach einem einzelnen Titel gesucht wird, ist WHERE nicht mehr zu verwenden, da ja nicht mehr auf einzelne Datensätze zugegriffen werden kann. An Stelle von WHERE verwendet man jetzt HAVING. Informiere dich über die Verwendung von HAVING und lass alle Bücher mit dem Titel Liederbuch anzeigen..
- Die nächste Abfrage soll folgende Anforderungen erfüllen:
- Es werden fach, titel, klasse und Menge angezeigt
- Bücher mit der Klasse 0 werden nicht angezeigt
- Es wird nach klasse und fach geordnet
- Es werden keine Bücher angezeigt, die im titel AH stehen haben (keine Arbeitshefte)

Aufgaben:
- Wieviele Bücher wurden 2016 bestellt? (2923)
- Wieviele Bücher wurden am 10. Mai 2016 bestellt, wieviele am 12. Mai 2016? (2386, 155)
- Wieviele Bücher wurden im Mai 2016 bestellt? (2756)
- Wieviele Nachbestellungen gab es (alles später als Mai 2016)? (167)
- Für wieviel Geld wurden 2016 Bücher bestellt? (49 965.75 €)
ACHTUNG: Die Buchtabelle enthält mehrere Fehler. Für das Buch "Elemente der Mathematik 5" ist ein falscher Preis eingetragen. Es kostet 23.95 €. Ändern!
Weiterhin sind die Preise für die meisten Musikbücher zu hoch. Deshalb dürfen sie nicht berücksichtigt werden und müssen über die fachid ausgeklammert werden.
- Welcher Betrag entfiel dabei auf Arbeitshefte? (7381.30 €)
zurück