Aggr - Diagrammfunktion

Aggr() berechnet eine Reihe von Werten für die Formel aggregiert über die angegebene Dimension oder Dimensionen. Beispielsweise den maximalen Umsatzwert pro Kunde oder Region. Die Funktion Aggr wird für komplexe Aggregierungen verwendet, in denen die Funktion Aggr in einer weiteren Aggregierungsfunktion eingeschlossen ist. Dazu wird die Reihe von Ergebnissen der Funktion Aggr als Eingabe für die Aggregierung verwendet, in der sie verschachtelt ist.

Syntax:  

Aggr({SetExpression}[DISTINCT] [NODISTINCT ] expr, StructuredParameter{, StructuredParameter})

Rückgabedatentyp: dual

Argumente:  

Argument Beschreibung
expr

Eine aus einer Aggregierungsfunktion bestehende Formel. Standardmäßig berechnet sich die Aggregierungsfunktion über alle wählbaren Werte.

StructuredParameter

StructuredParameter besteht aus einer Dimension und optional auch aus Sortierkriterien im Format (Dimension(Sort-type, Ordering)).

Die Dimension ist ein einzelnes Feld und darf keine Formel sein. Mit der Dimension wird der Wertepool bestimmt, für den die Formel Aggr berechnet wird.

Wenn Sortierkriterien vorliegen, wird der von der Funktion Aggr erstellte und für die Dimension berechnete Wertepool sortiert. Das ist wichtig, wenn die Sortierreihenfolge das Ergebnis der Formel ändert, die die Funktion Aggr enthält.

Details zur Verwendung der Sortierkriterien finden Sie unter Hinzufügen von Sortierkriterien zur Dimension in einem strukturierten Parameter.

SetExpression Standardmäßig berechnet sich die Aggregierungsfunktion über alle wählbaren Werte. Alternativ können Sie die der Berechnung zugrunde liegenden Werte über die Auswahlformel bestimmen.
DISTINCT Wird dem Formelargument dagegen distinct oder gar kein Qualifizierer vorangestellt, ergibt sich für jede Kombination von Dimensionswerten nur ein Wert. So werden Aggregationen normalerweise verwendet. Jede distinct-Kombination aus Dimensionswerten ergibt eine Zeile im Diagramm.
NODISTINCT

Der Zusatz der Formel nodistinct bewirkt, dass die Funktion für jede Kombination von Dimensionswerten je nach Datenstruktur mehrere Werte liefern kann. Ist nur eine Dimension vorhanden, liefert die Funktion aggr viele Werte mit derselben Anzahl an Elementen wie Zeilen in den Quelldaten vorhanden sind.

Grundlegende Aggregierungsfunktionen wie Sum, Min und Avg liefern einen numerischen Wert. Die Funktion Aggr() kann jedoch mit dem Erstellen einer temporären abgestuften Trefferliste (eine virtuelle Tabelle) verglichen werden, mithilfe derer eine weitere Aggregierung erfolgen kann. Zum Beispiel durch die Berechnung eines durchschnittlichen Umsatzwertes über die Addition der Umsätze nach Kunde in einer Aggr()-Anweisung und die anschließende Berechnung des Durchschnitts der addierten Ergebnisse: Avg(TOTAL Aggr(Sum(Sales), Customer)).

Tipp: Verwenden Sie die Funktion Aggr() in dynamischen Dimensionen, wenn Sie eine verschachtelte Diagramm-Aggregierung auf mehreren Ebenen erstellen möchten.

Beschränkungen:  

Alle Dimensionen in der Funktion Aggr() müssen Felder und dürfen keine Formeln (dynamische Dimensionen) sein.

Hinzufügen von Sortierkriterien zur Dimension in einem strukturierten Parameter

In seiner einfachsten Form ist das Argument StructuredParameter in der Aggr -Funktionssyntax eine einzelne Dimension. Die Formel Aggr(Sum(Sales, Month)) ermittelt die Gesamtsumme aller Verkäufe jedes Monats. Wenn sie jedoch in einer weiteren Aggregierungsfunktion eingeschlossen wird, kann es zu unerwarteten Ergebnissen kommen. Dies verhindern Sie durch die Verwendung von Sortierkriterien. Das liegt daran, dass einige Dimensionen numerisch sortiert werden können, andere alphabetisch usw.

Im Argument StructuredParameter der Funktion Aggr können Sie Sortierkriterien für die Dimension in Ihrer Formel angeben. Dadurch legen Sie eine Sortierreihenfolge für die virtuelle Tabelle fest, die von der Funktion Aggr generiert wird.

Das Argument StructuredParameter weist die folgende Syntax auf:

(FieldName, (Sort-type, Ordering))

Strukturierte Parameter können verschachtelt sein:

(FieldName, (FieldName2, (Sort-type, Ordering)))

Gültige Sortierungen: NUMERIC, TEXT, FREQUENCY oder LOAD_ORDER.

Je nach Sortierung sind folgende Reihenfolgen zulässig:

Sortierung Zulässige Reihenfolgen
NUMERIC ASCENDING, DESCENDING oder REVERSE
TEXT ASCENDING, A2Z, DESCENDING, REVERSE oder Z2A
FREQUENCY DESCENDING, REVERSE oder ASCENDING
LOAD_ORDER ASCENDING, ORIGINAL, DESCENDING oder REVERSE

Die Reihenfolgen REVERSE und DESCENDING führen zum selben Ergebnis.

Bei der Sortierung nach TEXT produzieren die Reihenfolgen ASCENDING und A2Z dasselbe Ergebnis, ebenso wie DESCENDING, REVERSE und Z2A.

Bei der Sortierung nach LOAD_ORDER produzieren die Reihenfolgen ASCENDING und ORIGINAL dasselbe Ergebnis.

Beispiele und Ergebnisse:  

Beispiel Ergebnis
Avg(Aggr(Sum(UnitSales*UnitPrice), Customer))

Die Formel Aggr(Sum(UnitSales*UnitPrice), Customer) ermittelt den Gesamtumsatzwert nach Customer und gibt eine Reihe von Werten aus: 295, 715 und 120 für die drei Customer-Werte.

Es ergibt sich also eine temporäre Liste von Werten, sodass Sie keine eigene Tabelle oder Spalte mit diesen Werten erstellen müssen.

Diese Werte werden als Eingangsgröße für die Avg()-Funktion verwendet, um den Durchschnittswert der Umsätze zu ermitteln, 376,6667. (Dafür muss im Eigenschaftenfenster unter Presentation die Option Gesamtwerte ausgewählt sein.)

Aggr(NODISTINCT Max(UnitPrice), Customer)

Eine Reihe von Werten: 16, 16, 16, 25, 25, 25, 19 und 19. Der Qualifizierer nodistinct bedeutet, dass der Pool ein Element für jede Zeile in den Quelldaten enthält: Jedes davon stellt den maximalen UnitPrice für jeden Customer und jedes Product dar.

max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear,(NUMERIC, ASCENDING))))

Verwenden von Sortierkriterien im Argument StructuredParameter der Formel max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear,(NUMERIC, ASCENDING))))

Ohne Sortierkriterien hängt das Ergebnis der Formel max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear))) davon ab, wie die Dimension MonthYearsortiert ist. Möglicherweise erhalten Sie nicht das erwartete Ergebnis.

Indem Sie der Dimension Werte für Sortierart und Reihenfolge hinzufügen, legen Sie Sortierkriterien für den strukturierten Parameter fest: (MonthYear, (NUMERIC, ASCENDING)), wobei die Sortierart NUMERIC und die Reihenfolge ASCENDINGfestlegen, dass MonthYear in aufsteigender numerischer Reihenfolge sortiert wird.

Im vorliegenden Fall wird der höchste Zuwachs bei den Kundenzahlen im Monatsvergleich ermittelt. Dies könnte beispielsweise bei einer Visualisierung der KPI verwendet werden.

Der Teil Aggr der Formel vergleicht die Gesamtanzahl der Kunden in einem Monat (bereitgestellt von MonthYear) mit der Gesamtanzahl im vorherigen Monat.

Da die Dimension (MonthYear,(NUMERIC, ASCENDING)) nun Sortierkriterien aufweist, wissen Sie mit Sicherheit, dass Aggr die Kundenzahlen der aufeinanderfolgenden Monate in der virtuellen Tabelle vergleicht, indem die Monate in aufsteigender numerischer Reihenfolge und nicht in absteigender alphabetischer Reihenfolge sortiert werden.

In Beispielen verwendete Daten:

Erstellen Sie eine Tabelle mit den Dimensionen Customer, Product, UnitPrice und UnitSales. Fügen Sie die Formel der Tabelle als Kennzahl hinzu.

ProductData:

LOAD * inline [

Customer|Product|UnitSales|UnitPrice

Astrida|AA|4|16

Astrida|AA|10|15

Astrida|BB|9|9

Betacab|BB|5|10

Betacab|CC|2|20

Betacab|DD|25|25

Canutility|AA|8|15

Canutility|CC||19

] (delimiter is '|');