# Aggr — funkcja wykresu

Funkcja Aggr() zwraca tablicę wartości wyrażenia obliczonego po wskazanych wymiarach. Może to na przykład być wartość maksymalna sprzedaży według klienta i regionu.

Funkcja Aggr jest przeznaczona do agregacji zagnieżdżonych, w których pierwszy parametr (agregacja wewnętrzna) jest obliczany raz na każdą wartość wymiaru. Wymiary są określone w drugim i kolejnych parametrach.

Ponadto funkcja Aggr powinna być zamknięta w zewnętrznej funkcji agregacji wykorzystującej tablicę wyników z funkcji Aggr jako dane wejściowe do agregacji, w której jest zagnieżdżona.

Składnia:

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

Typ zwracanych danych: wartość podwójna

Argumenty:

Argumenty

| Argument | Opis |
| --- | --- |
| expr | Wyrażenie zawierające funkcję agregacji. Funkcja agregacji będzie domyślnie dokonywać agregacji na zbiorze możliwych wierszy zdefiniowanym przez selekcję. |
| StructuredParameter | Parametr StructuredParameter obejmuje wymiar i opcjonalne kryteria sortowania podane w formacie `(Dimension(Sort-type, Ordering))`<br><br>Wymiar musi być pojedynczym polem i nie może być wyrażeniem. Na podstawie wymiaru zostanie ustalona tablica wartości, z których będzie wyliczana wartość wyrażenia Aggr.<br><br>Jeśli podane są kryteria sortowania, obliczona dla wymiaru tablica wartości utworzona przez funkcję Aggr jest sortowana. Jest to istotne, jeśli kolejność sortowania wpływa na wynik wyrażenia zawierającego funkcję Aggr.<br><br>Szczegółowe informacje na temat używania kryteriów sortowania zawiera temat [Dodawanie kryteriów sortowania do wymiaru podanego argumentem StructuredParameter](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/aggr.htm#Sorting). |
| SetExpression | Funkcja agregacji będzie domyślnie dokonywać agregacji na zbiorze możliwych wierszy zdefiniowanym przez selekcję. Alternatywny zestaw wierszy można zdefiniować za pomocą wyrażenia analizy zestawów. |
| DISTINCT | Jeśli argument wyrażenia jest poprzedzony kwalifikatorem distinct lub w ogóle nie ma kwalifikatora, dla każdej odrębnej kombinacji wartości wymiarów będzie generowana tylko jedna wartość zwracana. W ten sposób są standardowo dokonywane agregacje. Każda odrębna kombinacja wartości wymiarów będzie generować jeden wiersz na wykresie. |
| NODISTINCT | Jeśli argument wyrażenia jest poprzedzony kwalifikatorem nodistinct, każda kombinacja wartości wymiarów może generować więcej niż jedną wartość zwracaną (w zależności od bazowej struktury danych). Jeśli występuje tylko jeden wymiar, funkcja aggr zwróci tablicę z tą samą liczbą elementów co liczba wierszy w źródle danych. |

Podstawowe funkcje agregacji, takie jak Sum, Min i Avg, zwracają jedną wartość liczbową, natomiast działanie funkcji Aggr() można porównać do utworzenia tymczasowego zestawu wyników (tabeli wirtualnej), na którym wykonywana jest kolejna agregacja. Przykładowe zastosowanie to obliczenie średniej wartości sprzedaży poprzez zsumowanie sprzedaży według klientów w ramach instrukcji Aggr(), a następnie obliczenie średniej zsumowanych wyników: Avg(TOTAL Aggr(Sum(Sales),Customer)).

WskazówkaFunkcji Aggr() można używać w wymiarach wyliczanych, do tworzenia zagnieżdżanych agregacji wykresów na wielu poziomach.

Ograniczenia:

Każdy wymiar w funkcji Aggr() musi być pojedynczym polem i nie może być wyrażeniem (wymiarem wyliczanym).

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/aggr.htm)Dodawanie kryteriów sortowania do wymiaru podanego argumentem StructuredParameter

W podstawowej postaci argument StructuredParameter w składni funkcji Aggr jest pojedynczym wymiarem. Wyrażenie Aggr(Sum(Sales, Month)) znajduje łączną wartość sprzedaży w każdym miesiącu. Użycie go w obrębie innej funkcji agregacji może jednak dać nieoczekiwane wyniki, jeśli nie zostaną określone kryteria sortowania. Wynika to stąd, że niektóre wymiary można sortować na różne sposoby (w kolejności liczbowej, alfabetycznie itd.).

Argument StructuredParameter funkcji Aggr umożliwia określenie kryteriów sortowania wymiaru w ramach wyrażenia. Pozwala to wymusić określoną kolejność sortowania tabeli wirtualnej generowanej przez funkcję Aggr.

Składnia argumentu StructuredParameter jest następująca:

(FieldName, (Sort-type, Ordering))

Argumenty StructuredParameter można zagnieżdżać:

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

Typem sortowania może być: NUMERIC, TEXT, FREQUENCY lub LOAD\_ORDER.

Z poszczególnymi typami sortowania powiązane są następujące kolejności:

Dozwolone typy określania kolejności

| Typ sortowania | Dozwolone kolejności |
| --- | --- |
| NUMERIC | ASCENDING, DESCENDING lub REVERSE |
| TEXT | ASCENDING, A2Z, DESCENDING, REVERSE lub Z2A |
| FREQUENCY | DESCENDING, REVERSE lub ASCENDING |
| LOAD\_ORDER | ASCENDING, ORIGINAL, DESCENDING lub REVERSE |

Kolejności REVERSE i DESCENDING są równoważne.

W przypadku typu sortowania TEXT kolejności ASCENDING i A2Z są sobie równoważne. Również kolejności DESCENDING, REVERSE i Z2A są sobie równoważne.

W przypadku typu sortowania LOAD\_ORDER kolejności ASCENDING i ORIGINAL są sobie równoważne.

## Przykłady: wyrażenia wykresu używające Aggr

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/aggr.htm)

#### Przykłady — wyrażenia wykresu

### Przykład wyrażenia wykresu 1

#### Skrypt ładowania

Załaduj następujące dane w edytorze ładowania danych jako ładowanie wbudowane, aby utworzyć poniższy przykład wyrażeń wykresu.

```
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|0|19
] (delimiter is '|');
```

Aby uzyskać więcej informacji o ładowaniu wbudowanym, zobacz temat [Używanie wbudowanych ładowań do ładowania danych](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

#### Wyrażenie wykresu

Utwórz wizualizację KPI w arkuszu Qlik Sense. Dodaj do KPI następujące wyrażenie jako miarę:

`Avg(Aggr(Sum(UnitSales*UnitPrice), Customer))`

#### Wynik

376.7

#### Objaśnienie

Wyrażenie `Aggr(Sum(UnitSales*UnitPrice), Customer)` znajduje łączną wartość sprzedaży według pola Customer i zwraca tablicę wartości: 295, 715 i 120 dla trzech wartości Customer.

W efekcie uzyskaliśmy tymczasową listę wartości bez konieczności jawnego tworzenia tabeli lub kolumny zawierającej te wartości.

Wartości te są używane jako dane wejściowe dla funkcji Avg(), aby znaleźć średnią wartość sprzedaży, wynoszącą 376.7.

Więcej informacji o wyrażeniach zawiera temat [Używanie wyrażeń w wizualizacjach](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/use-expressions-in-visualizations.htm).

### Przykład wyrażenia wykresu 2

#### Skrypt ładowania

Załaduj następujące dane w edytorze ładowania danych jako ładowanie wbudowane, aby utworzyć poniższy przykład wyrażeń wykresu.

```
ProductData:

LOAD * inline [
Customer|Product|UnitSales|UnitPrice
Astrida|AA|4|16
Astrida|AA|10|15
Astrida|BB|10|15
Astrida|BB|9|9
Betacab|BB|5|10
Betacab|BB|7|12
Betacab|CC|2|22
Betacab|CC|4|20
Betacab|DD|25|25
Canutility|AA|8|15
Canutility|AA|5|11
Canutility|CC|0|19
] (delimiter is '|');
```

Aby uzyskać więcej informacji o ładowaniu wbudowanym, zobacz temat [Używanie wbudowanych ładowań do ładowania danych](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

#### Wyrażenie wykresu

Utwórz wizualizację tabeli w arkuszu Qlik Sense z wymiarami Customer, Product, UnitPrice i UnitSales. Dodaj w tabeli następujące wyrażenie jako miarę:

`Aggr(NODISTINCT Max(UnitPrice), Customer, Product)`

#### Wynik

| Customer | Product | UnitPrice | UnitSales | Aggr(NODISTINCT Max(UnitPrice), Customer, Product) |
| --- | --- | --- | --- | --- |
| Astrida | AA | 15 | 10 | 16 |
| Astrida | AA | 16 | 4 | 16 |
| Astrida | BB | 9 | 9 | 15 |
| Astrida | BB | 15 | 10 | 15 |
| Betacab | BB | 10 | 5 | 12 |
| Betacab | BB | 12 | 7 | 12 |
| Betacab | CC | 20 | 4 | 22 |
| Betacab | CC | 22 | 2 | 22 |
| Betacab | DD | 25 | 25 | 25 |
| Canutility | AA | 11 | 5 | 15 |
| Canutility | AA | 15 | 8 | 15 |
| Canutility | CC | 19 | 0 | 19 |

#### Objaśnienie

Tablica wartości: 16, 16, 15, 15, 12, 12, 22, 22, 25, 15, 15 i 19. Kwalifikator nodistinct oznacza, że tablica zawiera jeden element dla każdego wiersza w danych źródłowych — w tym przypadku będzie to maksymalna wartość pola UnitPrice dla każdego pola Customer i Product.

### Przykład wyrażenia wykresu 3

#### Skrypt ładowania

Załaduj następujące dane w edytorze ładowania danych jako ładowanie wbudowane, aby utworzyć poniższy przykład wyrażeń wykresu.

```
Set vNumberOfOrders = 1000;

OrderLines:
Load
	RowNo() as OrderLineID,
	OrderID,
	OrderDate,
	Round((Year(OrderDate)-2005)*1000*Rand()*Rand()*Rand1) as Sales
	While Rand()<=0.5 or IterNo()=1;
Load * Where OrderDate<=Today();
Load 
	Rand() as Rand1,
	Date(MakeDate(2013)+Floor((365*4+1)*Rand())) as OrderDate,
	RecNo() as OrderID
	Autogenerate vNumberOfOrders;
    
Calendar:
Load distinct
	Year(OrderDate) as Year,
	Month(OrderDate) as Month,
	OrderDate 
	Resident OrderLines;
```

#### Wyrażenia wykresu

Utwórz wizualizację tabeli w arkuszu Qlik Sense z wymiarami Year i Month. Dodaj do tabeli następujące wyrażenia jako miary.

* `Sum(Sales)`
* `Sum(Aggr( Rangesum(Above(Sum(Sales),0,12)), (Year, (Numeric, Ascending)), (Month, (Numeric, Ascending)) ))` oznaczone jako Structured Aggr() w tabeli.

#### Wynik

| Year | Month | Sum(Sales) | Structured Aggr() |
| --- | --- | --- | --- |
| 2013 | Jan | 53495 | 53495 |
| 2013 | Feb | 48580 | 102075 |
| 2013 | Mar | 25651 | 127726 |
| 2013 | Apr | 36585 | 164311 |
| 2013 | May | 61211 | 225522 |
| 2013 | Jun | 23689 | 249211 |
| 2013 | Jul | 42311 | 291522 |
| 2013 | Aug | 41913 | 333435 |
| 2013 | Sep | 28886 | 362361 |
| 2013 | Oct | 25977 | 388298 |
| 2013 | Nov | 44455 | 432753 |
| 2013 | Dec | 64144 | 496897 |
| 2014 | Jan | 67775 | 67775 |

#### Objaśnienie

W tym przykładzie wyświetlane są zagregowane wartości w okresie dwunastu miesięcy każdego roku w porządku chronologicznym rosnącym, stąd parametry strukturalne (Numeric, Ascending) wyrażenia Aggr(). Jako parametry strukturalne wymagane są dwa określone wymiary: Year i Month, posortowane (1) Year (liczbowy) i (2) Month (liczbowy). Te dwa wymiary muszą być używane w wizualizacji tabeli lub wykresu. Jest to konieczne, aby lista wymiarów funkcji Aggr() odpowiadała wymiarom obiektu użytego w wizualizacji.

Różnicę między tymi miarami można porównać w tabeli albo na osobnych wykresach liniowych:

* `Sum(Aggr(
  	Rangesum(Above(Sum(Sales),0,12)), 
  	(Year), 
  	(Month)
  	))`
* `Sum(Aggr(
  	Rangesum(Above(Sum(Sales),0,12)), 
  	(Year, (Numeric, Ascending)), 
  	(Month, (Numeric, Ascending))
  	))`

Powinno być jasne, że tylko to drugie wyrażenie wykonuje pożądaną akumulację zagregowanych wartości.

## Dowiedz się więcej

* [Podstawowe funkcje agregacji](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/AggregationFunctions/basic-aggregation-functions.htm)
* [Analiza zestawów](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)