• Funktionen in SQL
  • ploh
  • 30.06.2020
  • Allgemeine Hochschulreife
  • Informatik
  • 9
Um die Lizenzinformationen zu sehen, klicken Sie bitte den gewünschten Inhalt an.

Hinweis zum Einsatz im Unterricht

Einfache SQL-Abfrage über eine Tabelle sollen mit Aggregatfunktionen bearbeitet werden.

Ag­gre­gat­funk­tio­nen in SQL

In­ner­halb einer SQL-​Abfrage kön­nen ver­schie­de­ne Funk­tio­nen ver­wen­det wer­den, um die Daten aus der Ta­bel­le wei­ter zu se­lek­tie­ren bzw. zu­sam­men­zu­fas­sen.

Ag­gre­gat­funk­tio­nen bil­den genau einen Er­geb­nis­wert aus einer Viel­zahl von Ein­ga­be­wer­ten.



Die 5 wich­tigs­ten SQL-​Aggregatfunktionen sind:

  • SUM
  • MIN
  • MAX
  • AVG
  • COUNT

An­hand der Bundesliga-​Datenbank (<https://dbup2date.uni-​bayreuth.de/bun­des­li­ga.html>) soll der Ge­brauch und die Be­deu­tung die­ser Funk­tio­nen ver­deut­licht wer­den:

1
Wie viele Tore der Heim­mann­schaf­ten wur­den am 5. Spiel­tag er­zielt?
  • Zu­nächst müs­sen alle Da­ten­sät­ze des 5. Spiel­tags se­lek­tiert wer­den.
  • Die At­tri­but­wer­te des At­tri­buts Tore_Heim sol­len ad­diert und aus­ge­ge­ben wer­den.
Lösung1
Wie viele Tore der Heim­mann­schaf­ten wur­den am 5. Spiel­tag er­zielt?
SEL­ECT SUM(Tore_Heim) FROM Spiel WHERE Spiel­tag = 5;
2
Wie hoch ist die höchs­te An­zahl an Toren, die ein Spie­ler er­zielt hat?
  • Es wer­den alle Da­ten­sät­ze der Ta­bel­le Spie­ler be­nö­tigt, um die höchs­te An­zahl zu er­mit­teln.
  • Die höchs­te An­zahl be­zieht sich auf das At­tri­but Tore
Lösung2
Wie hoch ist die höchs­te An­zahl an Toren, die ein Spie­ler er­zielt hat?
SEL­ECT MAX(Tore) FROM Spie­ler;
3
Wie viele Spie­le hat ein Spie­ler durch­schnitt­lich ge­spielt?
  • Es wer­den alle Spie­ler be­trach­tet.
  • Es wird der Durch­schnitt über die Werte im At­tri­but Spie­le ge­bil­det.
Lösung3
Wie viele Spie­le hat ein Spie­ler durch­schnitt­lich ge­spielt?
SEL­ECT AVG(Spie­le) FROM Spie­ler;
4
Wie viele Spie­ler haben noch kein Tor ge­schos­sen?
  • Zu­nächst müs­sen alle Spie­ler se­lek­tiert wer­den, die noch kein Tor ge­schos­sen haben.
  • Die ge­fun­de­nen Da­ten­sät­ze müs­sen ge­zählt wer­den.
Lösung4
Wie viele Spie­ler haben noch kein Tor ge­schos­sen?
SEL­ECT COUNT(*) FROM Spie­ler WHERE Tore = 0;
x