summarize işleci

Giriş tablosunun içeriğini toplayan bir tablo oluşturur.

Syntax

T| summarize [ SummarizeParameters ] [[Sütun=] Toplama [, ...]] [by [Sütun=] GroupExpression [, ...]]

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Gerekli Açıklama
Sütun string Sonuç sütununun adı. Varsayılan olarak ifadeden türetilen bir addır.
Toplama string ✔️ sütun adlarını bağımsız değişken olarak içeren veya avg()gibi count()bir toplama işlevine yapılan çağrı.
GroupExpression Skalar ✔️ Giriş verilerine başvurabilen skaler ifade. Çıktı, tüm grup ifadelerinin ayrı değerleri olduğu kadar çok kayda sahip olur.
SummarizeParameters string Davranışı denetleen Ad=Değeri biçiminde sıfır veya daha fazla boşlukla ayrılmış parametre. Desteklenen parametrelere bakın.

Not

Giriş tablosu boş olduğunda, çıkış GroupExpression'ın kullanılıp kullanılmadığına bağlıdır:

  • GroupExpression sağlanmazsa, çıkış tek bir (boş) satır olur.
  • GroupExpression sağlanırsa, çıktıda satır olmaz.

Desteklenen parametreler

Ad Açıklama
hint.num_partitions Küme düğümlerinde sorgu yükünü paylaşmak için kullanılan bölüm sayısını belirtir. Bkz . karıştırma sorgusu
hint.shufflekey=<key> Sorgu, shufflekey verileri bölümleme anahtarını kullanarak küme düğümlerinde sorgu yükünü paylaşır. Bkz . karıştırma sorgusu
hint.strategy=shuffle Strateji shuffle sorgusu, her düğümün verilerin bir bölümünü işleyeceği küme düğümlerinde sorgu yükünü paylaşır. Bkz . karıştırma sorgusu

Döndürülenler

Giriş satırları, ifadelerin by aynı değerlerine sahip gruplar halinde düzenlenir. Ardından, belirtilen toplama işlevleri her grup üzerinde hesaplanır ve her grup için bir satır oluşturulur. Sonuç, her hesaplanan toplama için sütunları ve en az bir sütunu içerir by . (Bazı toplama işlevleri birden çok sütun döndürür.)

Sonuç, farklı değer bileşimleri by (sıfır olabilir) kadar çok satıra sahiptir. Sağlanan grup anahtarı yoksa, sonucun tek bir kaydı vardır.

Sayısal değer aralıklarını özetlemek için, aralıkları ayrık değerlere küçültmek için kullanın bin() .

Not

  • Hem toplama hem de gruplandırma ifadeleri için rastgele ifadeler sağlayabilmenize rağmen, basit sütun adlarını kullanmak veya sayısal bir sütuna uygulamak bin() daha verimlidir.
  • Tarih saat sütunları için otomatik saatlik bölmeler artık desteklenmiyor. Bunun yerine açık gruplama kullanın. Örneğin, summarize by bin(timestamp, 1h).

Toplamaların varsayılan değerleri

Aşağıdaki tabloda toplamaların varsayılan değerleri özetlemektedir:

Operatör Varsayılan değer
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() boş dinamik dizi ([])
Diğerleri null

Not

Bu toplamalar null değerler içeren varlıklara uygulanırken, null değerler yoksayılır ve hesaplamayı dikkate almaz. Örnekler için bkz. Varsayılan değerleri toplama.

Örnekler

Meyve ve tedarikçiye göre fiyatı özetleyin.

Benzersiz birleşim

Aşağıdaki sorgu, hangi benzersiz birleşimlerin StateEventType ve doğrudan yaralanmaya neden olan fırtınalar için olduğunu belirler. Toplama işlevi yoktur, yalnızca gruplandırma tuşları vardır. Çıkışta yalnızca bu sonuçların sütunları gösterilir.

StormEvents
| where InjuriesDirect > 0
| summarize by State, EventType

Çıkış

Aşağıdaki tabloda yalnızca ilk 5 satır gösterilmektedir. Çıkışın tamamını görmek için sorguyu çalıştırın.

Durum Olay türü
TEXAS Fırtına Rüzgarı
TEXAS Ani Sel
TEXAS Kış Hava Durumu
TEXAS Yüksek Rüzgar
TEXAS Sel
... ...

Minimum ve maksimum zaman damgası

Hawaii'deki en düşük ve en yüksek şiddetli yağmur fırtınalarını bulur. Group-by yan tümcesi olmadığından çıktıda yalnızca bir satır vardır.

StormEvents
| where State == "HAWAII" and EventType == "Heavy Rain"
| project Duration = EndTime - StartTime
| summarize Min = min(Duration), Max = max(Duration)

Çıkış

Min En yüksek değer
01:08:00 11:55:00

Ayrı sayı

Etkinliklerin gerçekleştiği şehirlerin sayısını gösteren her kıta için bir satır oluşturun. "Kıta" için az sayıda değer olduğundan, 'by' yan tümcesinde gruplandırma işlevi gerekmez:

StormEvents
| summarize TypesOfStorms=dcount(EventType) by State
| sort by TypesOfStorms

Çıkış

Aşağıdaki tabloda yalnızca ilk 5 satır gösterilmektedir. Çıkışın tamamını görmek için sorguyu çalıştırın.

Durum TypesOfStorms
TEXAS 27
CALİFORNİA 26
PENNSYLVANIA 25
GÜRCİSTAN 24
ILLİNOİS 23
... ...

Histogram

Aşağıdaki örnek, 1 günden uzun süren fırtınalara sahip bir histogram fırtına olayı türünü hesaplar. Birçok değeri olduğundan Duration , değerlerini 1 günlük aralıklar halinde gruplandırmak için kullanın bin() .

StormEvents
| project EventType, Duration = EndTime - StartTime
| where Duration > 1d
| summarize EventCount=count() by EventType, Length=bin(Duration, 1d)
| sort by Length

Çıkış

Olay türü Uzunluk EventCount
Kurak -lık 30.00:00:00 1646
Wildfire 30.00:00:00 11
Isı 30.00:00:00 14
Sel 30.00:00:00 20
Şiddetli Yağmur 29.00:00:00 42
... ... ...

Varsayılan değerleri toplar

İşleç girişi summarize en az bir boş gruplandırma ölçütü anahtarına sahip olduğunda, sonucu da boş olur.

İşleç girişinin summarize group-by anahtarı boş olmadığında sonuç, toplamaların summarize varsayılan değerleridir. Daha fazla bilgi için bkz. Toplamaların varsayılan değerleri.

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)

Çıkış

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

sonucunun avg_x(x)NaN 0'a bölünmesi gerekir.

datatable(x:long)[]
| summarize  count(x), countif(x > 0) , dcount(x), dcountif(x, x > 0)

Çıkış

count_x Countıf_ dcount_x dcountif_x
0 0 0 0
datatable(x:long)[]
| summarize  make_set(x), make_list(x)

Çıkış

set_x list_x
[] []

Toplam ortalama null olmayan tüm değerleri toplar ve yalnızca hesaplamaya katılanları sayar (null değerleri dikkate almaz).

range x from 1 to 4 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize sum(y), avg(y)

Çıkış

sum_y avg_y
15 5

Normal sayı null değerleri sayar:

range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize count(y)

Çıkış

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)

Çıkış

set_y set_y1
[5.0] [5.0]