Es kommt sehr häufig vor, dass wir in unseren Tabellen ein paar Drill-Downs verwenden, und wir wollen den Durchschnitt der Indikatoren auf verschiedenen Ebenen berechnen.
Es wird empfohlen, sich mit den Funktionen memberValue und crossValue vertraut zu machen, bevor Sie mit diesem Tutorial fortfahren.
In der folgenden Tabelle sehen Sie zwei Drill-down-Ebenen () (Mitarbeitername und Produkt). Das durchschnittliche Rating berechnet die durchschnittliche Bewertung für diesen Mitarbeiter für dieses Produkt.
Hier ist, wie Sie dies berechnen können.
if(!equals(substringBefore(memberValue(), ' ') ,'Product')) { return ''; } else { filter("L_PRODUCT in ('" + memberValue() + "')") {crossValue('CUBE_DAILY_CALLS.DAILY_CALLS','M_RATING@AVG')}; }
Es wird empfohlen, sich mit der crossValue-Formel vertraut zu machen, bevor Sie mit diesem Tutorial fortfahren. Da crossValue keine Drill-Downs in der Kontextansicht durchführt.
In dieser Tabelle unten wird nun das Produkt als erste Ebene der Drill-Downs platziert, und dann ist der Mitarbeitername die zweite Ebene. Durchschnittlicher Benchmark ist immer noch der gesamte Mitarbeiterdurchschnitt am Produkt. Wenn Sie die Reihenfolge der Drill-Downs ändern, wird die Berechnung von *Avg. Benchmark" etwas anders.
double benchmark = 0; if(equals(substringBefore(memberValue(), ' '), 'Product') || isBlank(memberValue())) { benchmark = M_RATING@AVG; }else { benchmark = prev('M_RATING@AVG',1); } return benchmark