Access: Abfragen mit SQL

Aggregat-Funktionen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Es gibt eine Reihe von typischen zusammenfassenden Funktionen, die in Gruppierungsabfragen eingesetzt werden.

Transkript

Es gibt verschiedene sogenannte Aggregatfunktionen, also zusammenfassende Funktionen im Zusammenhang mit Gruppierungsabfragen, die ich Ihnen hier gerne vorstellen möchte. Die COUNT-Funktion kennen sie ja schon, das ist diejenige, die Datensätze zählt, deswegen ist der Inhalt der Datensätze egal, Sie dürfen statt eines Feldnamens hier ein Sternchen einsetzen. Wenn ich die ausführe, ist es zwar technisch in Ordnung, Es gibt also sechs Datensätze in der Tabelle "Orte", aber es liest sich nicht so schön, deswegen sollte man eigentlich immer direkt dazuschreiben AS "neuer Feldname". also so was wie AnzOrte für Anzahl Orte, damit es dann ein bisschen hübscher ist, und vor allem andere Abfragen, die auf dieser basieren, dann auch auf ein Feld zugreifen können. Außer COUNT, der Anzahl, gibt es auch einen Mittelwert, das heißt wenn ich hier erstmal alles lösche, und wie üblich sozusagen ein SELECT FROM irgendwas mache, dann will ich wissen die mittleren Stundenpreise, und zwar für die Instrumente. Das bedeutet, ich brauche die Tabelle "Lehrer". In der Tabelle "Lehrer" stehen die Stundenpreise und will dort pro Instrument, von dem ich allerdings in dieser Tabelle nur die Nummer weiß, eine Gruppe bilden. Ich will den Instrumenten IDRef-Wert sehen, lehreinstrIDRef. Das ist die Nummer des Instrumentes und dann den Durchschnittswert, also AVG (average) als Abkürzung für Mittelwert, und dann gebe ich das Feld ein, dessen Mittelwert ich sehen will. Das ist der Standard Preis. Und hier wieder Klammer zu. Wenn ich das so mache, ist es syntaktisch noch nicht in Ordnung. Ich muss ein "GROUP BY" dazu schreiben, und das gruppiert in dieses Feld wieder, also das ist so nicht schön, aber technisch richtig Außer, das ich hier vielleicht noch einen Feldnamen dazu schreiben sollte, zum Beispiel AS "Mittlerer Preis", sobald ich hier ein Leerzeichen mache, muss ich natürlich auch eckigen Klammern darum setzen. Jetzt kann ich es ausführen und Sie sehen, da hilft mir jetzt Access in der Ansicht, dass ich nachgucken kann, 1 ist die Querflöte, mit diesem mittleren Preis, 5 die Geige. Die Abfrage selber liefert dieses Wissen nicht, aber für die Technik reicht das erstmal, auch wenn es wirklich nicht schön ist. Also das sind die mittleren Stundenpreise für die Instrumente. Und ich möchte jetzt wissen, wie viele ausleihbare Instrumente ich nach Gruppe, sprich, nach Holzbläsern, nach Blechbläsern habe. Also wieder ein SELECT FROM Tabelle. Dieses Mal ist die Tabelle die "tblinstrumente". Und ich will sehen auch hier wieder das Problem mit der Referenznummer. Ich sehe nicht in der Instrumentengruppe selber, sondern nur deren ID, und will zusammenzählen die Anzahl der ausleihbaren Instrumente. Das ist die Summe "Sum". Dort gibt es eines der wenigen Zahlenfelder für diesen Fall war es nämlich angelegt, "AS AnzahlInstrumente" und da muss ich dann noch ein GROUP BY anhängen. und zwar wiederum nach dem Referenzfeld, diesen nämlich. Wenn ich das jetzt ausführe, kann ich hier direkt nachsehen, Holzbläser gibt es insgesamt 58 und von den Blechbläsern sind 17. Wie sich das aufteilt, sehe ich jetzt hier nicht, aber es geht hier um die Summe, also SUM, sowie COUNT und AVERAGE. Mindestens so häufig sind die Minimum und Maximum Werte, also wenn ich herauskriegen will, zum Beispiel welches der teuerste Stundensatz ist. Das steht in der Tabelle Lehrer. Dort sind die Standardpreise hinterlegt. Und ich will gar nichts anderes wissen, nicht wer den teuersten Satz hat, sondern nur welches der teuerste Stundensatz ist. Das ist das Maximum oder kurz formuliert MAX, Von, da nenne ich das Feld, was betroffen ist, nämlich der Standardpreis. "AS TeuersteStunde" nenne ich das, nur mal die Unterrichtsstunde Und wenn ich das ausführe, kommt deswegen nur eine einzige Zahl raus, weil es keine echte Gruppenbildung gibt. Entsprechend könnte ich hier auf MIN für Minimum ändern. Da will ich was anderes herauskriegen, nämlich den ältesten Schüler. Der ist an seinem Datum zu erkennen, also da können wir wieder einfügen, ein SELECT * FROM, nämlich von der Tabelle "Schüler". Und für den ältesten Schüler brauche ich das kleinste Geburtsdatum, also das Minimum, das geht auch von Datumswerten und da dann das Geburtsdatum, Klammer zu, AS, ich schreibe mal einfach, GeburtsDAtum groß oder klein, ist aber Wurscht, und wenn ich das jetzt ausführe, dann sehe ich jetzt, der älteste Schüler ist 1931 geboren, und damit schon ganz schön alt. Also die typischen Aggregatsfunktionen, es sind nicht die einzigen, aber so die wesentlichen, die man braucht, ist Minimum Maximum als MIN und MAX, die Summe als SUM, Average für den Mittelwert und COUNT für die Anzahl von Datensätzen.

Access: Abfragen mit SQL

Nutzen Sie die mächtige Abfragesprache SQL in Microsoft Access. Anhand einer Beispiel-Datenbank lernen Sie die Möglichkeiten und Finessen von SQL im Detail kennen.

3 Std. 14 min (64 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieses Training ist für alle Access-Versionen verwendbar. Das vermittelte SQL-Wissen lässt sich mit geringen Abweichungen auch für andere relationale Datenbanksysteme nutzen.

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!