2.3 Gruppierte Datensätze Beispiel 1: In der Datenbank Kaufdaten soll ermittelt werden, welcher Kunde am meisten Geld ausgegeben hat. Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze Für jeden Kunden wird nun die Summe der Preise berechnet. Die Summe wird in der Ergebnistabelle als eigene Spalte angezeigt. Schließlich wird nach dieser neuen Spalte absteigend sortiert. Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze Man löst dies mithilfe gruppierter Datensätze Und Aggregatfunktionen. Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze Die neu erzeugte Spalte kann umbenannt werden. Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze Beispiel 2: In der Datenbank Kaufdaten soll ermittelt werden, wie viele Artikel der Kunde Klaus Kreplin gekauft hat. Lösung ohne gruppierter Datensätze durch Zählen der Ergebnisse. (Das Attribut Warenbezeichnung kann auch weggelassen werden.) Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze Lösung mithilfe gruppierter Datensätze und der Aggregatfunktion COUNT: Oder auch: Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze Veranschaulichung: Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze Die Gruppierung mit dem Befehl GROUP BY ist nicht immer notwendig. Beispiel 3: Was ist der höchste Preis aller gekauften Artikel? Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze Das Ergebnis einer Abfrage kann auch als Bedingung (Selektion) verwendet werden. Dazu müssen zwei Abfragen verschachtelt werden: Beispiel 4: Wie lautet die Bezeichnung des teuersten Artikels? Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze In einer Tabelle kann man nach einer Spalte bzw. nach einem Attribut gruppieren. Dabei werden jeweils alle Datensätze, bei denen das Attribut einen bestimmten Wert hat, zusammengefasst. In SQL geschieht dies durch den Befehl GROUP BY. In einer Abfrage kann mit SELECT, also einer Projektion, zunächst nur dieses Attribut ausgegeben werden. Mithilfe von Aggregatfunktionen kann die Tabelle um zusätzliche Spalten erweitert werden. Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze Wichtige Aggregatfunktionen: COUNT(Attribut) Anzahl SUM (Attribut) Summe AVG(Attribut) Mittelwert MIN (Attribut) Minimum MAX (Attribut) Maximum Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze Übung 1 Vorlage: Kaufdaten.odb 1. Wie viele Einkäufe wurden mit Karte bezahlt? 2. Wie viele Produkte hat jeder einzelne Kunde mit Barzahlung eingekauft? 3. Welche Umsätze wurden am 26.8.2007 in jeder einzelnen Sparte gemacht? 4. Wie viele Waren der Sparte „Lebensmittel“ wurden gekauft? 5. Wie viele Waren wurden bei Gutkauf gekauft? 6. Wie viel Geld wurde für Sportartikel ausgegeben? Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze Übung 1 Vorlage: Kaufdaten.odb 7. Wie viele Waren, die mehr als 10 € kosten, wurden am 2.9.2007 gekauft? 8. Wie viele Waren wurden bei Imagi am 5. September 2007 gekauft? 9. Vergleiche den Gesamtumsatz bei Kartenzahlung mit dem Gesamtumsatz bei Barzahlung. 10. Wie viel kostete ein Kosmetikartikel durchschnittlich? 11. Wie viel Geld haben am 5.9.2007 die männlichen Kunden ausgegeben? 12. Liste in alphabetischer Reihenfolge alle Kunden mit der Summe ihrer Ausgaben auf. 13. Wie viel Geld haben insgesamt die männlichen Kunden und wie viel insgesamt die weiblichen Kunden ausgegeben? Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze Übung 1 Vorlage: Kaufdaten.odb 14. Liste alle Geschäfte sortiert nach mittlerem Preisniveau auf. 15. Liste alle Sparten auf. Es soll für jede Sparte der gesamte Umsatz am 6.9.2007 ausgegeben werden. Die Liste soll nach dem Gesamtumsatz sortiert sein, be ginnend mit der umsatzstärksten Sparte. 16. Liste für jeden Tag die Summe der Preise aller gekauften Waren auf. 17. Wer hat das teuerste Produkt gekauft? 18. An welchem Tag waren die Einnahmen insgesamt am größten/kleinsten? Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze
Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze Übung 2 Seite 144, Aufgaben 1 und 4 Informatik 9 – 2.Datenbanken – 2.3 Gruppierte Datensätze