Die Gruppierung von Daten ist eine wichtige Funktion der Datenanalyse. Attribute – wie z.B. „Preisklasse“ – erleichtern oftmals die Gruppenbildung in einer BI-Anwendung. Manchmal muss ein BI-Nutzer jedoch seine Daten nach eigenen, neuen Gruppen zusammensetzen, für die keine Attribute in der Datenbank vorhanden sind.
Oracle Business Intelligence Suite (OBI) stellt hierfür die Bin-Case-Funktion zur Verfügung. Mit ihr können wir ohne tiefere SQL-Kenntnisse in wenigen Klicks Gruppierungen, sog. Bins, erstellen.
Es gibt sicher schönere und sinnvollere Möglichkeiten Gruppen zu erstellen, z.B. diese als Attribute in der Datenbank anzulegen. Aber die Bins sind eine schnelle und einfache Alternative für BI-Anwender.
Hier soll kurz für BI-Anwender die Bin-Case-Funktion des OBI erklärt werden.
Grundlage CASE-Statement
Die Bin-Case–Funktion repräsentiert nichts anderes als ein SQL-CASE-Statement. Für weiterführende Informationen zum Case-Statement findet sich ein Link am Ende des Artikels.
Im Case-Statement werden Attribute ausgewählt, deren Werte zu selbstdefinierten Gruppen bzw. den „Bins“ führen können. Jedes Bin repräsentiert dabei eine WHEN-Klausel bei der ein Attributwert auf eine vorgegebene Bedingung geprüft wird. Z.B. „WHEN Preis >= 100 …“.
Wenn ein Wert auf eine Bedingung zutrifft wird mit „THEN“ diese Zeile der definierten Gruppe zugewiesen.
Z.B. „WHEN Preis >= 100 THEN ‚PREISGRUPPE_1′“.
Wie im CASE-Statement ist dabei die Reihenfolge zu beachten. Jede ausgewählte Zeile in einer BI-Auswertung wird genau einem Bin hinzugefügt. Es gilt: trifft der geprüfte Attributwert eine Gruppe, wird zugeteilt. Andere mögliche Bins werden dann nicht mehr berücksichtigt.
Beispiel
In diesem einfachen Beispiel sollen Fahrzeuge nach Hubraumbereichen ausgewertet werden. Hierfür haben wir eine BI-Analyse erstellt.
Die Analyse zeigt im Ausschnitt wie viele Fahrzeuge einen bestimmten Hubraumwert haben. Dabei gibt es viele, nah beieinander liegende Hubraumwerte mit nur einem Fahrzeug. Um diese Einzelzeilen zusammenzufassen, müssen wir den Hubraum gruppieren. Ein Attribut Hubraumklasse, o.ä., steht in diesen BI-Modell nicht zur Verfügung, d.h. wir erstellen nun die Bereiche anhand des vorhandenen Attributs.
Im Bereich Kriterien der BI-Analyse können wir per Rechtsklick auf die Spalte Hubraum die „Formel bearbeiten“. Im Register „Bins“ können wir die Gruppen erstellen.
Bei „Bin hinzufügen“ können wir den Operator und den zu prüfenden Wert auswählen.
Anschließend müssen wir noch einen Namen für das neue Bin auswählen.
Nachdem wir alle Bins bzw. Gruppen erstellt haben, können wir den Namen für „alle anderen Werte“ festgelegen. „Alle anderen Werte“ entspricht im Case-Statement dem ELSE-Zweig.
Hinweise zu Bins
Wichtig: wie bereits oben erwähnt werden im CASE-Statement die Bins der Reihenfolge nach abgearbeitet. Wenn ein Datensatz auf eine Bedingung zutrifft, wird er in diese Gruppe einsortiert. Selbst wenn der Datensatz noch auf andere Bins zutreffen kann.
Die Bin-Gruppen sollten vom Anwender daher trennscharf ausgewählt werden, sodass ein Wert nur einer Gruppe hinzugefügt werden kann. Die Anwender sollten zudem den ungefähren Wertebereich der Attribute kennen.
Die Option „Alle anderen Werte“ muss nicht erstellt werden. Jedoch werden dann alle restlichen Einzelwerte als eigene Zeile dargestellt.
Falls wir keine Bezeichnung für die Restgruppe erstellen, generiert das BI-System eine Gruppe ohne Namen.
Wenn die Checkbox „Ergebnis als numerischen Wert behandeln“ ausgewählt wird, kann nach der Gruppespalte numerisch sortiert werden. Zudem können wir mit dem Ergebnis Berechnungen durchführen.
Wenn wir wieder das Register „Spaltenformel“ auswählen, sehen wir das neu generierte CASE-Statement.
Ergebnis
Wenn wir zurück auf die Ergebnissicht der Analyse gehen, sehen wir wie die Fahrzeuge nach den von uns festgelegten Hubraumgruppen aufgeteilt sind.
Im Ergebnis sind also schnelle und einfache Gruppierungen mit Bins möglich. Bei komplexeren Gruppierungen empfiehlt sich jedoch dies über vorgelagerte Attribute in der Datenbank oder im Repository von Oracle BI zu lösen.
Links
www.oracletutorial.com/oracle-basics/oracle-case/
https://docs.oracle.com/en/cloud/paas/bi-cloud/bilug/conditional-expressions.html