SQL Grundkurs 1: Die Sprache erlernen

Gruppenfunktionen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Summe, Anzahl und Mittelwert sind eine Auswahl der Gruppenfunktionen in SQL und sie fassen die Werte aus mehreren Zeilen zu jeweils einem Wert zusammen. Wenn Sie wissen möchten, welche Gruppenfunktionen es außer den genannten drei noch gibt, verpassen Sie nicht dieses Video!

Transkript

Gruppenfunktionen stellen in SQL ein für Auswertungen unabdingbares Werkzeug dar. Was Sie damit tun können und wie sie funktionieren, zeige ich Ihnen in diesem Video. Gruppenfunktionen werden auch "Aggregatfunktionen" oder "Multiple Row Funktionen" genannt. Woher kommen diese Bezeichnungen? Gruppenfunktionen werden sie genannt, weil sie innerhalb einer Gruppe Werte zusammenfassen, die aus irgendetwas gebildet werden, z.B. Umsatz je Mitarbeiter. Wir fassen also nach "Mitarbeiter" zusammen und summieren den "Umsatz". Das wäre eine Gruppenfunktion. "Aggregatfunktionen" heißen sie, weil sie Werte zusammenfassen wir aggregieren. Und als "Multiple Row Funktionen" werden sie bezeichnet, weil die Werte, die zusammengefasst werden, über mehrere Zeilen hinweg zusammengefasst werden. Die Standardfunktionen, die wir bisher verwendet haben, sind ja sogenannte "Single Row Funktionen". Was sind jetzt diese Gruppenfunktionen? Z.B.: Wenn Sie die Summe von etwas bilden, wenn Sie die Anzahl bilden, wie viele gibt es, wenn Sie das Minimum von etwas eruieren oder das Maximum, den größten vorkommenden Wert oder den Mittelwert, oder für statistische Auswertungen die Standardabweichung, sowie die Varianz. Sie können Gruppenfunktionen in SQL alleine für sich oder gemeinsam mit einer Gruppierung einsetzen. In diesem Video zeige ich Ihnen, wie Sie Gruppenfunktionen prinzipiell alleine verwenden. Dazu möchte ich auf unsere Artikeltabelle zugreifen und möchte jetzt eruieren, z.B., wie viele Datensätze es hier überhaupt gibt und verwende daher die Funktion "COUNT". "COUNT" steht für die Anzahl. Ich zähle z.B. den Verkaufspreis, wie viele mit Verkaufspreis gibt es? Und vergebe als Alias "Anzahl". Außerdem möchte ich wissen, was denn der niedrigste Verkaufspreis ist, der hier überhaupt vorkommt, und verwende die Gruppenfunktion "MIN" für Minimum. Das Gegenteil davon wäre, das Maximum über die Gruppenfunktion "MAX" zu verwenden. Bevor wir uns hier weitere Gruppenfunktionen ergänzen, führen wir diese Anweisung einmal aus, um uns das Ergebnis anzusehen, also das Zwischenergebnis. Entscheidend ist hier, wir haben ja hier noch keine Gruppierung verwendet, dass alle vorhandenen Werte zu einem Wert zusammengefasst werden, d.h., alle Preise. Über die "Anzahl" bekommen wir 1112, weil es so viele Datensätze in der Artikeltabelle gibt, Minimum "0", D.h., es gibt mindestens einen Artikel, der nichts kostet, gratis ist; und "Maximum", der größte vorkommende Preis, liegt knapp unter 763 Euro. Nun können wir auch noch den Mittelwert ergänzen. "AVG" für "Average" liefert den durchschnittlichen Verkaufspreis über alle Artikel. Für Statistiker unter Ihnen gibt es noch die Standardabweichung, sowie die Varianz, die eine Aussage über die Werteverteilung, über die Streuung liefern. Ich führe diese Anweisung aus, und wir haben jetzt hier die weiteren Werte. "Mittelwert" sagt mir, dass der durchschnittliche Preis eines Artikels bei uns knapp 32 Euro beträgt. Keine Syntaxunterschiede gibt es hier bei Oracle und MySQL, deshalb kopiere ich mir diese Anweisung in die jeweils anderen Editoren. Fangen wir bei Oracle an. Der erste Unterschied ist, dass diese Standardabweichung mit 2 "D"s geschrieben werden muss. Sie sehen auch, dass der Editor "VAR", für die Varianz, nicht als Schlüsselwort erkennt und markiert, die muss hier als "variance" ausgeschrieben werden. Nun können wir auch hier die Anweisung ausführen und kriegen ein ähnliches Ergebnis. Was hier natürlich der Fall ist aufgrund der unterschiedlichen Datentypen: Sie sehen dass Oracle hier enorm viele Nachkommastellen zusätzlich ausgibt. Wenn Sie das unterbinden wollen, können Sie z.B. zusätzlich über die Rundungsfunktion das Ganze z.B auf jeweils zwei Nachkommastellen noch runden, dann ist das Ergebnis auch besser lesbar. Beim "Mittelwert" sehen Sie, dass ich noch vergessen habe, das ebenfalls zu ergänzen. Das mache ich hier auch noch, und damit haben wir ein besser lesbares Ergebnis. Kleine Unterschiede gibt es auch hier in MySQL. Kopieren wir uns auch diese Anweisung hier herein. Die Standardabweichung für Oracle-Kompatibilität könnte man auf diese Art und Weise schreiben. Man könnte es auch als "STT_POP" verwenden als Popularität-Standardabweichung. Das Gleiche gilt für die Varianz. Aber man kann das hier kompatibel zu Oracle, ich muss es nur noch richtig eintippen, auch als "variance" eingeben. Sie dürfen sich nicht davon irritieren lassen, dass der Editor es hier nicht richtig markiert und richtig kennt. Das kommt auch bei den anderen Datenbanksystemen, bzw. deren Editoren, immer wieder vor, dass die Editoren manchmal etwas nicht ganz korrekt darstellen und erkennen. Ich versuche das hier noch ordentlich auszurichten, damit das auch optisch noch ein Gesicht bekommt und damit haben wir nun dasselbe Ergebnis auch bei MySQL und bei Oracle erzielt. Ich wechsle zurück in den SQL Server Editor. Ich habe Ihnen vorhin erzählt, dass alle Datensätze zu einer Ergebniszeile zusammengefasst werden. D.h., es spielt eigentlich keine Rolle, wie viele Datensätze jetzt hier in die Gruppierung mit eingehen, in dieses Zusammenfassen. Auf jeden Fall bekommen wir eine Ergebniszeile. Und das gilt, solange wir keine explizite Gruppierung verwenden. Um Ihnen das zu zeigen, kopiere ich mir jetzt diese Anweisung und ergänze hier eine WHERE-Klausel, um die Anzahl der Datensätze zu verringern z.B., dass die Artikelgruppe nur "Besteck" und "Geschirr" umfassen soll. Ich führe die neue Anweisung aus und wir sehen, wir haben zwar jetzt, über die Anzahl können wir es erkennen, deutlich weniger Datensätze, die in die Berechnung mit eingehen, nämlich 253. Aber wir bekommen dennoch genau eine Ergebniszeile. Das wäre auch der Fall, wenn wir eigentlich gar keine Datensätze im Ergebnis hätten. Selbst dann, wenn ich z.B. die Einschränkung verwende: Gruppe = XX, und diese Artikelgruppe existiert gar nicht, liefern die Gruppenfunktionen ein Ergebnis in Form von einer Zeile. Was jetzt hier sehr typisch ist, ist, dass alle Werte hier NULL sind, außer der Anzahl. Gibt es keine Werte, liefert die "Anzahl" "0" und nicht NULL. Das ist der entscheidende Unterschied. Die Gruppenfunktion "COUNT" kann per Definition nie einen NULL-Wert als Ergebnis liefern. Verwenden Sie also Gruppenfunktionen, wenn Sie Werte zusammenfassen möchten. Das kann entweder die Anzahl, oder der kleinste oder der größte Wert sein, das kann der Mittelwert oder, für Statistiker für die Werteverteilung, Standardabweichung  und Varianz sein. Solange Sie keine Gruppierung verwenden, sondern nur Gruppenfunktionen für sich allein, bekommen Sie immer eine Ergebniszeile, egal wie viele Grunddatensätze in diese Berechnung mit eingehen.

SQL Grundkurs 1: Die Sprache erlernen

Arbeiten Sie sich in die Grundlagen der Datenbanksprache SQL am Beispiel von Microsoft SQL Server, Oracle und MySQL ein und lassen Sie sich die praktische Nutzung erklären.

14 Std. 40 min (112 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!