In 99% der Fälle wird SQL zum Ablegen und Auslesen von Daten aus einer Datenbank benutzt. Doch die wenigsten wissen, dass man mit SQL auch komplizierte statistische Berechnungen durchführen kann.
Geschichte
1970 wurden Relationale Datenbanken erstmals erwähnt. Ihre Entwicklung weg von der Schritt-für-Schritt-Programmierung hin zu deklarativer, der Mathematik ähnlicher, Ausdrucksweise bei der Berechnung mit Daten, führte zu einer rasanten Entwicklung in der Datenverarbeitung. Man trennte auf einmal die Verwendung der Daten von der Speicherung. Während sich die Anwendung darum kümmert, was mit den Daten geschieht und was sie bedeuten, organisiert sich das Datenbanksystem selbstständig, indem es Speicherstrukturen optimiert, Indizes anlegt und Anfragepläne umschreibt und optimiert. Auf diese Weise entwickelt man einmalig beispielsweise statistische Formeln und anschließend kann jedes SQL-fähige Datenbanksystem diese ausrechnen. Werden beispielsweise die Datenbestände größer, kann man über ein kommerzielles DBMS nachdenken.
Der Group-Operator
Mit der GROUP BY-Klausel von SQL sortiert man die einzelnen Datensätze in Kategorien ein. Der Group-Operator ist die Grundlage für alle Statistiken, denn er fässt Datensätze zusammen. Mit dem Gruppierungsausdruck gibt man an, nach welchem Merkmal Datensätze zusammengefasst werden. Die Wahrscheinlichkeit P(A | B)
berechnet man mit beispielsweise mit SELECT .... GROUP BY B
. Der Gruppierungsausdruck kann sowohl Spalten enthalten (beispielsweise gruppiere Umsätze nach Kategorie), aber auch Berechnungen (gruppiere nach Tageszeit des Bestelldatums, gruppiere nach Wochentag, gruppiere nach unter- und über 1.000€ Umsatz).
Der SUM- und COUNT-Operator
Summen eignen sich, um Größenvergleiche numerischer Werte zu ermöglichen. Beispielsweise lässt sich der Umsatz einer Sparte aufsummieren. Beim Zählen ist es genau so, nur dass jeweils eine 1 aufsummiert wird.
Der Heilige Gral: AVG
Mit der AVG-Funktion berechnet man normalerweise Durchschnitte, beispielsweise das durchschnittliche Gehalt einer Abteilung. Wir Statistiker können aber wesentlich mehr damit anstellen. Misst man beispielsweise den Durchschnitt eines boolschen Ausdrucks, lässt sich eine Prozentzahl berechnen. Beispiel: SELECT AVG(Alter < 18) FROM Besucher
errechnet, welcher Anteil der Besucher unter 18 Jahren sind.
Insbesondere in der Wahrscheinlichkeitsrechnung ist der AVG-Operator essenziell, denn man kann den Satz von Bayes prima in SQL ausdrücken, indem man einfach den Durchschnitt aller Wahrscheinlichkeiten gruppiert nach der Bedingung errechnet. Was man damit anstellen kann, können Sie im Beitrag über Wahrscheinlichkeiten nachlesen.
Comments are closed