Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Aggr

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 verschachtelte Aggregierungen verwendet, bei denen der erste Parameter (die innere Aggregierung) einmal pro Dimensionswert berechnet wird. Die Dimensionen werden im zweiten Parameter (und in den darauffolgenden Parametern) angegeben.

Zudem sollte die Aggr-Funktion in einer äußeren Aggregierungsfunktion eingeschlossen sein. Dazu wird die Reihe von Ergebnissen der Aggr-Funktion als Eingabe für die Aggregierung verwendet, in der sie verschachtelt ist.

Syntax:  

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

Rückgabe Datentyp: dual

Argumente:  

  • 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 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. Beispielsweise 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)).

TipphinweisVerwenden 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 Umsätze 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 sind: NUMERIC, TEXT, FREQUENCY oder LOAD_ORDER.

Je nach Sortierung sind folgende Reihenfolgen zulässig:

Typen von Sortierreihenfolgen
SortierungVerfügbare Sortierreihenfolgen
NUMERICASCENDING, DESCENDING oder REVERSE
TEXTASCENDING, A2Z, DESCENDING, REVERSE oder Z2A
FREQUENCYDESCENDING, REVERSE oder ASCENDING
LOAD_ORDERASCENDING, 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

Beispiel 1:  

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.)

Beispiel 2:  

Aggr(NODISTINCT Max(UnitPrice), Customer)

Eine Reihe von Werten: 16, 16, 16, 25, 25, 25, 19 und 19. Der nodistinct -Qualifizierer 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.

Beispiel 3:  

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 ASCENDING festlegen, 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 '|');

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!

Nehmen Sie am Analyse-Modernisierungsprogramm teil

Remove banner from view

Modernisieren Sie mit dem Analyse-Modernisierungsprogramm, ohne Ihre wertvollen QlikView-Apps zu gefährden. Klicken Sie hier für weitere Informationen oder kontaktieren Sie uns: ampquestions@qlik.com