Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Tworzy tabelę, która agreguje zawartość tabeli wejściowej.
Składnia
T| summarize
[ SummarizeParameters ] [[Kolumna=
] Agregacja [,
...]] [by
[Kolumna=
] GroupExpression [,
...]]
Dowiedz się więcej na temat konwencji składni.
Parametry
Nazwisko | Typ | Wymagania | opis |
---|---|---|---|
Kolumna | string |
Nazwa kolumny wyników. Domyślnie nazwa pochodzi z wyrażenia . | |
Agregacja | string |
✔️ | Wywołanie funkcji agregacji, takiej jak count() lub avg() , z nazwami kolumn jako argumentami. |
GroupExpression | skalar | ✔️ | Wyrażenie skalarne, które może odwoływać się do danych wejściowych. Dane wyjściowe zawierają tyle rekordów, ile jest unikatowych wartości wszystkich wyrażeń grupy. |
SummarizeParameters | string |
Zero lub więcej parametrów rozdzielonych spacjami w postaci wartości nazwy= , która kontroluje zachowanie. Zobacz obsługiwane parametry. |
Uwaga
Gdy tabela wejściowa jest pusta, dane wyjściowe zależą od tego, czy jest używana funkcja GroupExpression :
- Jeśli parametr GroupExpression nie jest podany, dane wyjściowe są pojedynczym (pustym) wierszem.
- Jeśli parametr GroupExpression jest podany, dane wyjściowe nie zawierają wierszy.
Obsługiwane parametry
Nazwisko | opis |
---|---|
hint.num_partitions |
Określa liczbę partycji używanych do współużytkowania obciążenia zapytania w węzłach klastra. Zobacz zapytanie mieszania |
hint.shufflekey=<key> |
Zapytanie shufflekey współudzieli obciążenie zapytania w węzłach klastra przy użyciu klucza do partycjonowania danych. Zobacz zapytanie mieszania |
hint.strategy=shuffle |
shuffle Zapytanie strategii współudzieli obciążenie zapytania w węzłach klastra, gdzie każdy węzeł przetwarza jedną partycję danych. Zobacz zapytanie mieszania |
Zwraca
Wiersze wejściowe są rozmieszczane w grupach o tych samych wartościach by
wyrażeń. Następnie określone funkcje agregacji są obliczane dla każdej grupy, tworząc wiersz dla każdej grupy. Wynik zawiera by
kolumny, a także co najmniej jedną kolumnę dla każdej obliczonej agregacji. (Niektóre funkcje agregacji zwracają wiele kolumn).
Wynik zawiera tyle wierszy, ile istnieje różnych kombinacji by
wartości (które mogą być zerowe). Jeśli nie podano kluczy grupy, wynik ma jeden rekord.
Aby podsumować zakresy wartości liczbowych, użyj polecenia bin()
, aby zmniejszyć zakresy do wartości dyskretnych.
Uwaga
- Mimo że można podać dowolne wyrażenia zarówno dla wyrażeń agregacji, jak i grupowania, bardziej wydajne jest użycie prostych nazw kolumn lub zastosowanie
bin()
do kolumny liczbowej. - Automatyczne przedziały godzinowe dla kolumn daty/godziny nie są już obsługiwane. Zamiast tego użyj jawnego kwantowania. Na przykład
summarize by bin(timestamp, 1h)
.
Domyślne wartości agregacji
Poniższa tabela zawiera podsumowanie wartości domyślnych agregacji:
Obsługujący | Domyślna wartość |
---|---|
count() , countif() , , , dcount() dcountif() count_distinct() sum() sumif() variance() varianceif() stdev() stdevif() |
0 |
make_bag() , , make_bag_if() , make_list() , make_list_if() , , make_set() make_set_if() |
pusta tablica dynamiczna ([]) |
Wszystkie inne | zero |
Uwaga
Podczas stosowania tych agregacji do jednostek, które zawierają wartości null, wartości null są ignorowane i nie są uwzględniane w obliczeniach. Zobacz Przykłady.
Przykłady
Przykłady w tym artykule używają publicznie dostępnych tabel w pomocy klastra, takich jak tabela
StormEvents
w bazie danych przykładów.
Przykłady w tym artykule używają publicznie dostępnych tabel, takich jak tabela
StormEvents
w przykładowej analizie pogody przykładowych danych.
Poniższy przykład określa, jakie unikatowe kombinacje State
i EventType
istnieją dla burz, które spowodowały bezpośrednie szkody. Brak funkcji agregacji— po prostu grupowanie według kluczy. Dane wyjściowe zawierają tylko kolumny dla tych wyników.
StormEvents
| where InjuriesDirect > 0
| summarize by State, EventType
Wyjście
W poniższej tabeli przedstawiono tylko pierwsze 5 wierszy. Aby wyświetlić pełne dane wyjściowe, uruchom zapytanie.
Stan | Typ Wydarzenia |
---|---|
TEKSAS | Wiatr i burza |
TEKSAS | Powodzia błyskawiczna |
TEKSAS | Zimowa pogoda |
TEKSAS | Silny wiatr |
TEKSAS | Powódź |
...\ | ...\ |
Poniższy przykład znajduje minimalne i maksymalne ulewne burze deszczu na Hawajach. Nie ma klauzuli group-by, więc w danych wyjściowych znajduje się tylko jeden wiersz.
StormEvents
| where State == "HAWAII" and EventType == "Heavy Rain"
| project Duration = EndTime - StartTime
| summarize Min = min(Duration), Max = max(Duration)
Wyjście
Minuta | Maks |
---|---|
01:08:00 | 11:55:00 |
Poniższy przykład oblicza liczbę unikatowych typów zdarzeń burzy dla każdego stanu i sortuje wyniki według liczby unikatowych typów burzy:
StormEvents
| summarize TypesOfStorms=dcount(EventType) by State
| sort by TypesOfStorms
Wyjście
W poniższej tabeli przedstawiono tylko pierwsze 5 wierszy. Aby wyświetlić pełne dane wyjściowe, uruchom zapytanie.
Stan | TypesOfStorms |
---|---|
TEKSAS | 27 |
KALIFORNIA | 26 |
PENSYLWANIA | 25 |
GRUZJA | 24 |
ILLINOIS | 23 |
...\ | ...\ |
Poniższy przykład oblicza typy zdarzeń burzy histogramu, które miały burze trwające dłużej niż 1 dzień. Ponieważ Duration
ma wiele wartości, użyj polecenia bin()
, aby pogrupować swoje wartości w interwały 1-dniowe.
StormEvents
| project EventType, Duration = EndTime - StartTime
| where Duration > 1d
| summarize EventCount=count() by EventType, Length=bin(Duration, 1d)
| sort by Length
Wyjście
Typ Wydarzenia | Długość | LiczbaZdarzeń |
---|---|---|
Susza | 30.00:00:00 | 1646 |
Pożary lasów | 30.00:00:00 | 11 |
Ciepło | 30.00:00:00 | 14 |
Powódź | 30.00:00:00 | 20 |
Ulewny deszcz | 29.00:00:00 | 42 |
...\ | ...\ | ...\ |
W poniższym przykładzie przedstawiono wartości domyślne agregacji, gdy tabela wejściowa jest pusta. Operator summarize
służy do obliczania wartości domyślnych agregacji.
Jeśli dane wejściowe summarize
operatora mają co najmniej jeden pusty klucz grupowania według, jego wynik jest również pusty.
Jeśli dane wejściowe summarize
operatora nie mają pustego klucza grupowania, wynikiem są wartości domyślne agregacji używanych w sekcji summarize
Aby uzyskać więcej informacji, zobacz Domyślne wartości agregacji.
datatable(x:long)[]
| summarize any_x=take_any(x), arg_max_x=arg_max(x, *), arg_min_x=arg_min(x, *), avg(x), buildschema(todynamic(tostring(x))), max(x), min(x), percentile(x, 55), hll(x) ,stdev(x), sum(x), sumif(x, x > 0), tdigest(x), variance(x)
Wyjście
any_x | arg_max_x | arg_min_x | avg_x | schema_x | max_x | min_x | percentile_x_55 | hll_x | stdev_x | sum_x | sumif_x | tdigest_x | variance_x |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nan | 0 | 0 | 0 | 0 |
Wynik jest avg_x(x)
NaN
spowodowany podziałem przez 0.
datatable(x:long)[]
| summarize count(x), countif(x > 0) , dcount(x), dcountif(x, x > 0)
Wyjście
count_x | countif_ | dcount_x | dcountif_x |
---|---|---|---|
0 | 0 | 0 | 0 |
datatable(x:long)[]
| summarize make_set(x), make_list(x)
Wyjście
set_x | list_x |
---|---|
[] | [] |
Średnia agregacja sumuje tylko wartości inne niż null i zlicza tylko te wartości w obliczeniach, ignorując wszystkie wartości null.
range x from 1 to 4 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize sum(y), avg(y)
Wyjście
sum_y | avg_y |
---|---|
15 | 5 |
Funkcja liczenia standardowego zawiera wartości null w swojej liczbie:
range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize count(y)
Wyjście
count_y |
---|
2 |
range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize make_set(y), make_set(y)
Wyjście
set_y | set_y1 |
---|---|
[5.0] | [5.0] |