summarize işleci

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

Sales | summarize NumTransactions=count(), Total=sum(UnitPrice * NumUnits) by Fruit, StartOfMonth=startofmonth(SellDateTime)

Meyve ve satış ayı başına kaç satış işlemi ve toplam tutar içeren bir tablo döndürür. Çıkış sütunları işlemlerin sayısını, işlem değerini, meyvesini ve işlemin kaydedildiği ayın başlangıcının tarih saatini gösterir.

T | summarize count() by price_range=bin(price, 10.0)

Her aralıkta [0,10.0], [10.0,20.0] vb. fiyatlara sahip olan öğe sayısını gösteren tablo. Bu örnekte sayı için bir sütun ve fiyat aralığı için bir sütun vardır. Diğer tüm giriş sütunları yoksayılır.

Syntax

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

Bağımsız değişkenler

  • Sütun: Sonuç sütunu için isteğe bağlı ad. Varsayılan olarak ifadeden türetilen bir addır.

  • Toplama: 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: Giriş verilerine başvurabilen skaler ifade. Çıktı, tüm grup ifadelerinin ayrı değerleri olduğu kadar çok kayda sahip olur.

  • SummarizeParameters: Davranışı denetleen Ad=Değeri biçiminde sıfır veya daha fazla (boşlukla ayrılmış) parametre. Aşağıdaki parametreler desteklenir:

    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

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.

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ç, hesaplanmış her 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).

Varsayılan değerleri toplar

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

Operatör Varsayılan değer
count(), countif(), dcount(), dcountif() 0
make_bag(), make_bag_if(), make_list(), make_list_if(), make_set(), make_set_if() boş dinamik dizi ([])
Diğerleri null

Bu toplamaları null değerler içeren varlıklar üzerinde kullanırken, null değerler yoksayılır ve hesaplamaya katılmaz (aşağıdaki örneklere bakın).

Örnekler

Summarize price by fruit and supplier.

Benzersiz birleşim

Bir tabloda hangi benzersiz ve CompletionStatus birleşimlerinin ActivityType bulunduğunu belirleyin. Toplama işlevi yoktur, yalnızca gruplandırma tuşları vardır. Çıkışta yalnızca bu sonuçların sütunları gösterilir:

Activities | summarize by ActivityType, completionStatus
ActivityType completionStatus
dancing started
singing started
dancing abandoned
singing completed

Minimum ve maksimum zaman damgası

Etkinlikler tablosundaki tüm kayıtların en düşük ve en yüksek zaman damgasını bulur. Group-by yan tümcesi olmadığından çıktıda yalnızca bir satır vardır:

Activities | summarize Min = min(Timestamp), Max = max(Timestamp)
Min Max
1975-06-09 09:21:45 2015-12-24 23:45: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:

Activities | summarize cities=dcount(city) by continent
cities continent
4290 Asia
3267 Europe
2673 North America

Histogram

Aşağıdaki örnek, her etkinlik türü için bir histogram hesaplar. Birçok değeri olduğundan Duration , değerlerini 10 dakikalık aralıklar halinde gruplandırmak için kullanın bin :

Activities | summarize count() by ActivityType, length=bin(Duration, 10m)
count_ ActivityType length
354 dancing 0:00:00.000
23 singing 0:00:00.000
2717 dancing 0:10:00.000
341 singing 0:10:00.000
725 dancing 0:20:00.000
2876 singing 0:20:00.000
...

Varsayılan değerleri toplar

İşleç girişi summarize en az bir boş gruplandırma ölçütü anahtarına sahipse, sonuç da boş olur.

işlecinin girişinde summarize boş bir gruplandırma ölçütü anahtarı olmadığında, sonuç içinde summarizekullanılan toplamaların varsayılan değerleridir:

datatable(x:long)[]
| summarize any(x), arg_max(x, x), arg_min(x, 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)
any_x max_x max_x_x min_x min_x_x avg_x schema_x max_x1 min_x1 percentile_x_55 hll_x stdev_x sum_x sumif_x tdigest_x variance_x
datatable(x:long)[]
| summarize  count(x), countif(x > 0) , dcount(x), dcountif(x, x > 0)
count_x countif_ dcount_x dcountif_x
0 0 0 0
datatable(x:long)[]
| summarize  make_set(x), make_list(x)
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 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize sum(y), avg(y)
sum_y avg_y
5 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)
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)
set_y set_y1
[5.0] [5.0]