OLAP-Funktionen sind sehr praktische SQL-Funktionalitäten, die ich oft und gerne in Projekten verwende und deshalb hier einen Überblick geben will.
Während die „normalen“ Spaltenfunktionen im SQL – typischerweise – eine GROUP BY Klausel nach sich ziehen, kann man mit OLAP-Funktionen auf diese verzichten und alle benötigten Spalten einfach mit-selektieren.
Beispiel für Db2 SQL OLAP
Ein Beispiel ist an dieser Stelle sicherlich hilfreich:
Aufgabe:
Ermitteln Sie die Mitarbeiter der Abteilungen mit Ihrem Gehalt und den prozentualen Anteil dieses Gehalts am Gesamtgehalt der jeweiligen Abteilung
anhand der EMPLOYEE-Tabelle der Db2 SAMPLE Datenbank.
Mit OLAP-Funktion wäre dafür folgendes SQL ausreichend:
Inzwischen gibt es viele verschiedene OLAP-Funktionen, die sich an so einigen Stellen unterscheiden, was schon mal zu Verwirrungen führen kann, auch wenn es eigentlich in der IBM-Dokumentation enthalten ist. Dort sind die interessanten Punkte aber über viele Fragmente des Syntaxdiagrams verteilt und es nicht leicht eine Übersicht zu bekommen. Deshalb habe ich dies aufbereitet und hoffe es schafft Klarheit über die Unterschiede.
Übersicht der OLAP-Funktionen
Die Aggregatsfunktionen beziehen sich auf die üblichen Funktionen wie z.B. max(), avg(), sum() wie es auch im obigen Beispiel zu sehen ist. Die vollständige Liste findet man in der IBM Dokumentation.
Performance - immer ein Thema
Dem Vorurteil, das mir schon mehrfach begegnet ist, diese OLAP-Funktionen seinen nicht performant möchte ich hier klar widersprechen – im Gegenteil – diese sind meist die wesentlich performantere Lösung, was ich in vielen Praxiseinsätzen auch mit größten Datenmengen schon beweisen konnte.
Schreiben Sie mir gerne eine Mail an michael.tiefenbacher@mip.de, wenn Sie Interesse an Details von Db2 OLAP-Funktionen oder andere Db2 Themen haben, die Sie vertiefen wollen. Gerne nehme ich mit Ihnen Kontakt dazu auf und es hilft mir, meinen Ideenspeicher für neue Blogartikel zu füllen – bis dahin viel Erfolg.
Ihr Michael Tiefenbacher
Principal Consultant
Viele Informationen zu unseren Datenbank-Services finden Sie auch mit einem Klick auf unserer Kompetenzseite zum Thema Datenbanken, schauen Sie gerne vorbei.