operator podsumowania
Tworzy tabelę, która agreguje zawartość tabeli wejściowej.
Składnia
T| summarize
[ SummarizeParameters ] [[Column=
] Agregacja [,
...]] [ [Kolumna=
] GroupExpression [,
by
...]]
Dowiedz się więcej o konwencjach składniowych.
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
Kolumna | string |
Nazwa kolumny wyników. Wartość domyślna to nazwa pochodząca z wyrażenia. | |
Agregacja | string |
✔️ | Wywołanie funkcji agregacji , takiej jak count() lub avg() , z nazwami kolumn jako argumentami. |
GroupExpression | Wartość skalarna | ✔️ | Wyrażenie skalarne, które może odwoływać się do danych wejściowych. Dane wyjściowe będą miały dowolną liczbę rekordów, ponieważ istnieją różne wartości wszystkich wyrażeń grupy. |
SummarizeParameters | string |
Zero lub więcej parametrów rozdzielanych 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 zostanie podany, dane wyjściowe będą pojedynczym (pustym) wierszem.
- Jeśli zostanie podana wartość GroupExpression , dane wyjściowe nie będą miały wierszy.
Obsługiwane parametry
Nazwa | Opis |
---|---|
hint.num_partitions |
Określa liczbę partycji używanych do współużytkowania obciążenia zapytania w węzłach klastra. Zobacz zapytanie shuffle |
hint.shufflekey=<key> |
shufflekey Zapytanie współudzieli obciążenie zapytania w węzłach klastra przy użyciu klucza do partycjonowania danych. Zobacz zapytanie shuffle |
hint.strategy=shuffle |
shuffle Zapytanie strategii współdzieli obciążenie zapytania w węzłach klastra, gdzie każdy węzeł będzie przetwarzać jedną partycję danych. Zobacz zapytanie shuffle |
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 kolumny, a także co najmniej jedną kolumnę by
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
- Chociaż 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 należy użyć jawnego kwantowania. Na przykład
summarize by bin(timestamp, 1h)
.
Wartości domyślne agregacji
Poniższa tabela zawiera podsumowanie wartości domyślnych agregacji:
Operator | Wartość domyślna |
---|---|
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 | null |
Uwaga
Podczas stosowania tych agregacji do jednostek, które zawierają wartości null, wartości null są ignorowane i nie są uwzględniane w obliczeniu. Aby zapoznać się z przykładami, zobacz Wartości domyślne agregacji.
Przykłady
Unikatowa kombinacja
Poniższe zapytanie określa, jakie unikatowe kombinacje State
i EventType
istnieją dla burz, które spowodowały bezpośrednie szkody. Nie ma żadnych funkcji agregacji, po prostu grupuj według kluczy. Dane wyjściowe będą po prostu pokazywać kolumny dla tych wyników.
StormEvents
| where InjuriesDirect > 0
| summarize by State, EventType
Dane wyjściowe
W poniższej tabeli przedstawiono tylko pierwsze 5 wierszy. Aby wyświetlić pełne dane wyjściowe, uruchom zapytanie.
Stan | Typ zdarzenia |
---|---|
TEXAS | Burza wiatru |
TEXAS | Powodzie błyskawiczne |
TEXAS | Pogoda zimowa |
TEXAS | Wysoki wiatr |
TEXAS | Powódź |
... | ... |
Minimalna i maksymalna sygnatura czasowa
Znajduje minimalne i maksymalne ulewne burze deszczowe 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)
Dane wyjściowe
Min. | Maks. |
---|---|
01:08:00 | 11:55:00 |
Zliczenie
Utwórz wiersz dla każdego kontynentu z liczbą miast, w których występują działania. Ponieważ istnieje kilka wartości dla "kontynentu", w klauzuli "by" nie jest wymagana żadna funkcja grupowania:
StormEvents
| summarize TypesOfStorms=dcount(EventType) by State
| sort by TypesOfStorms
Dane wyjściowe
W poniższej tabeli przedstawiono tylko pierwsze 5 wierszy. Aby wyświetlić pełne dane wyjściowe, uruchom zapytanie.
Stan | TypesOfStorms |
---|---|
TEXAS | 27 |
KALIFORNII | 26 |
PENNSYLVANIA | 25 |
GRUZJA | 24 |
ILLINOIS | 23 |
... | ... |
Histogram
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
Dane wyjściowe
Typ zdarzenia | Długość | EventCount |
---|---|---|
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 |
... | ... | ... |
Agreguje wartości domyślne
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)
Dane wyjściowe
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 avg_x(x)
jest NaN
spowodowany podziałem przez 0.
datatable(x:long)[]
| summarize count(x), countif(x > 0) , dcount(x), dcountif(x, x > 0)
Dane wyjściowe
count_x | countif_ | dcount_x | dcountif_x |
---|---|---|---|
0 | 0 | 0 | 0 |
datatable(x:long)[]
| summarize make_set(x), make_list(x)
Dane wyjściowe
set_x | list_x |
---|---|
[] | [] |
Agregacja średnia sumuje wszystkie wartości inne niż null i zlicza tylko te, które uczestniczyły w obliczeniu (nie uwzględniają 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)
Dane wyjściowe
sum_y | avg_y |
---|---|
15 | 5 |
Zwykła liczba będzie zliczać wartości null:
range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize count(y)
Dane wyjściowe
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)
Dane wyjściowe
set_y | set_y1 |
---|---|
[5.0] | [5.0] |
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla