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()
gibicount()
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 sorgusuhint.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
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 summarize
kullanı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] |