top-nested işleci

Her düzeyin bir öncekini iyileştirme olduğu hiyerarşik toplama ve üst değer seçimini üretir.

T | top-nested 3 of Location with others="Others" by sum(MachinesNumber), top-nested 4 of bin(Timestamp,5m) by sum(MachinesNumber)

top-nestedİşleç, giriş ve bir veya daha fazla toplama yan tümcesini tablo verilerini kabul eder. İlk toplama yan tümcesi (en soldaki), giriş kayıtlarını, bu kayıtlar üzerinde bazı ifadenin benzersiz değerlerine göre bölümlere ayırır. Yan tümcesi daha sonra bu ifadeyi kayıtlar üzerinde en üst düzeye çıkaran veya en aza indirecek belirli sayıda kayıt tutar. Sonraki toplama yan tümcesi, iç içe bir biçimde benzer bir işlevi uygular. Aşağıdaki yan tümce Previous yan tümcesi tarafından oluşturulan bölüme uygulanır. Bu işlem tüm toplama yan tümceleri için devam eder.

Örneğin, top-nested işleç şu soruyu yanıtlamak için kullanılabilir: "ülke, satışçı ve satılan miktar gibi satış rakamlarını içeren bir tablo için, satışa göre ilk beş ülke nedir? Bu ülkelerin her birinde en iyi üç satış temsilcisi nedir? "

Syntax

Ttop-nestedtop-nested [ ,top-nested,]...

Burada Topnestedyan tümcesi aşağıdaki sözdizimine sahiptir:

[N] [ ExprName= ] Expr [ withConstExprothers= ] by [ AggName= ] Aggregationasc | desc []

Bağımsız değişkenler

Her Topnestedtümcesiiçin:

  • N: Bu hiyerarşi düzeyi için döndürülecek en üst değer sayısını gösteren bir tür long sabit değeri. Atlanırsa, tüm benzersiz değerler döndürülür.

  • ExprName: Belirtilmişse, değerine Expr karşılık gelen çıkış sütununun adını ayarlar.

  • Expr: Giriş kaydı üzerinde, bu hiyerarşi düzeyi için hangi değerin dönebileceğini gösteren bir ifade. Genellikle tablo girişi (T) için bir sütun başvurusu veya böyle bir sütun için bir hesaplama ( gibi).

  • ConstExpr: Belirtilmişse, her hiyerarşi düzeyi için, "en üst öğeyi oluşturma" olmayan tüm kayıtlarda toplama olan değer ile 1 kayıt eklenir.

  • AggName: Belirtilmişse, bu tanımlayıcı Çıktıda sütun adını AggNamedeğeri olarak ayarlar.

  • Aggregation: Aynı değerini Expr paylaşan tüm kayıtlara uygulanacak toplamayı gösteren sayısal bir ifade. Bu toplanın değeri, sonuçta elde edilen kayıtlardan hangisinin "üst" olduğunu belirler.

    Aşağıdaki toplama işlevleri desteklenir:

  • asc ya da desc (varsayılan), seçimin gerçekten "alt" veya "en önde" olup olmadığını denetlemek için görünebilir.

Döndürülenler

Bu işleç her toplama yan tümcesi için iki sütunu olan bir tablo döndürür:

  • Bir sütun, yan tümcesinin Expr hesaplamasının farklı değerlerini ( Expr ) barındırır

  • Bir sütun toplama hesaplamasının sonucunu tutar (belirtilmişse aggregationname sütununa sahip)

Notlar

Değer olarak Expr belirtilmeyen giriş sütunları output. Tüm değerleri belirli bir düzeyde almak için, şu şekilde bir toplama sayısı ekleyin:

  • N değerini atlar
  • Değer olarak sütun adını kullanır Expr
  • Toplama olarak kullanır Ignore=max(1) ve sonra sütunu Ignore yoksayar (veya proje dışı).

Toplama yan tümceleri sayısıyla ((N1 + 1) * (N2 + 1) *...), kayıt sayısı üstel olarak büyüyebilir. N sınırı belirtilmemişse, kayıt büyümesi daha da hızlı olur. Bu işlecin çok miktarda kaynak tükettiği bir hesaba sahip olması.

Toplama dağıtımı önemli ölçüde Tekdüzen olmayan bir değer ise, farklı değer sayısını döndürecek şekilde sınırlayın ( Nkullanarak) ve diğer tüm durumların "ağırlığı" için bir gösterge almak üzere ConstExpr seçeneğini kullanın .

Örnekler

StormEvents
| top-nested 2 of State       by sum(BeginLat),
  top-nested 3 of Source      by sum(BeginLat),
  top-nested 1 of EndLocation by sum(BeginLat)
Durum aggregated_State Kaynak aggregated_Source EndLocation aggregated_EndLocation
KANSAS 87771.2355000001 Yasalar zorlaması 18744,823 FT SCOTT 264,858
KANSAS 87771.2355000001 Genel 22855,6206 BUCKLIN 488,2457
KANSAS 87771.2355000001 Eğitimli spour 21279,7083 SPG 'LER 388,7404
TEXAS 123400,5101 Genel 13650,9079 AMARILLO 246,2598
TEXAS 123400,5101 Yasalar zorlaması 37228,5966 PERRYTON 289,3178
TEXAS 123400,5101 Eğitimli spour 13997,7124 CLAUDE 421,44

' Diğer kullanıcılarla ' seçeneğini kullanın:

StormEvents
| top-nested 2 of State with others = "All Other States" by sum(BeginLat),
  top-nested 3 of Source by sum(BeginLat),
  top-nested 1 of EndLocation with others = "All Other End Locations" by sum(BeginLat)
Durum aggregated_State Kaynak aggregated_Source EndLocation aggregated_EndLocation
KANSAS 87771.2355000001 Kolluk 18744.823 FT SCOTT 264.858
KANSAS 87771.2355000001 Genel 22855.6206 OLINLIN 488.2457
KANSAS 87771.2355000001 Eğitilen Spotter 21279.7083 SHARON SPGS 388.7404
TEXAS 123400.5101 Genel 13650.9079 AMARİLLO 246.2598
TEXAS 123400.5101 Kolluk 37228.5966 PERRYTON 289.3178
TEXAS 123400.5101 Eğitilen Spotter 13997.7124 CLAUDE 421.44
KANSAS 87771.2355000001 Kolluk 18744.823 Diğer Tüm Uç Konumlar 18479.965
KANSAS 87771.2355000001 Genel 22855.6206 Diğer Tüm Uç Konumlar 22367.3749
KANSAS 87771.2355000001 Eğitilen Spotter 21279.7083 Diğer Tüm Uç Konumlar 20890.9679
TEXAS 123400.5101 Genel 13650.9079 Diğer Tüm Uç Konumlar 13404.6481
TEXAS 123400.5101 Kolluk 37228.5966 Diğer Tüm Uç Konumlar 36939.2788
TEXAS 123400.5101 Eğitilen Spotter 13997.7124 Diğer Tüm Uç Konumlar 13576.2724
KANSAS 87771.2355000001 Diğer Tüm Uç Konumlar 24891.0836
TEXAS 123400.5101 Diğer Tüm Uç Konumlar 58523.2932000001
Diğer Tüm Eyaletler 1149279.5923 Diğer Tüm Uç Konumlar 1149279.5923

Aşağıdaki sorgu, yukarıdaki örnekte kullanılan birinci düzey için aynı sonuçları gösterir.

 StormEvents
 | where State !in ('TEXAS', 'KANSAS')
 | summarize sum(BeginLat)
sum_BeginLat
1149279.5923

Üst iç içe geçmiş sonuç için başka bir sütun (EventType) isteğinde bulundur.

StormEvents
| top-nested 2 of State       by sum(BeginLat),
  top-nested 2 of Source      by sum(BeginLat),
  top-nested 1 of EndLocation by sum(BeginLat),
  top-nested   of EventType   by tmp = max(1)
| project-away tmp
Durum aggregated_State Kaynak aggregated_Source EndLocation aggregated_EndLocation Olay türü
KANSAS 87771.2355000001 Eğitilen Spotter 21279.7083 SPG 'LER 388,7404 Thunderfırtınası Rüzgar
KANSAS 87771.2355000001 Eğitimli spour 21279,7083 SPG 'LER 388,7404 HAIL
KANSAS 87771.2355000001 Eğitimli spour 21279,7083 SPG 'LER 388,7404 Tornado dili
KANSAS 87771.2355000001 Genel 22855,6206 BUCKLIN 488,2457 HAIL
KANSAS 87771.2355000001 Genel 22855,6206 BUCKLIN 488,2457 Thunderfırtınası Rüzgar
KANSAS 87771.2355000001 Genel 22855,6206 BUCKLIN 488,2457 Taşmalarıyla
TEXAS 123400,5101 Eğitimli spour 13997,7124 CLAUDE 421,44 HAIL
TEXAS 123400,5101 Yasalar zorlaması 37228,5966 PERRYTON 289,3178 HAIL
TEXAS 123400,5101 Yasalar zorlaması 37228,5966 PERRYTON 289,3178 Taşmalarıyla
TEXAS 123400,5101 Yasalar zorlaması 37228,5966 PERRYTON 289,3178 Flaş sel

Sonucu son iç içe düzeye (Bu örnekte EndLocation ile) sıralamak için bu düzeydeki her bir değer (grup başına) için bir dizin sıralama düzeni verin:

StormEvents
| top-nested 2 of State  by sum(BeginLat),    top-nested 2 of Source by sum(BeginLat),    top-nested 4 of EndLocation by  sum(BeginLat)
| order by State , Source, aggregated_EndLocation
| summarize EndLocations = make_list(EndLocation, 10000) , endLocationSums = make_list(aggregated_EndLocation, 10000) by State, Source
| extend indicies = range(0, array_length(EndLocations) - 1, 1)
| mv-expand EndLocations, endLocationSums, indicies
Durum Kaynak EndLocations Endlocationsum 'ları ın
TEXAS Eğitimli spour CLAUDE 421,44 0
TEXAS Eğitimli spour AMARILLO 316,8892 1
TEXAS Eğitimli spour DALHART 252,6186 2
TEXAS Eğitimli spour PERRYTON 216,7826 3
TEXAS Yasalar zorlaması PERRYTON 289,3178 0
TEXAS Yasalar zorlaması LEAKEY 267.9825 1
TEXAS Kolluk BRACKETTVILLE 264.3483 2
TEXAS Kolluk GİLMER 261.9068 3
KANSAS Eğitilen Spotter SHARON SPGS 388.7404 0
KANSAS Eğitilen Spotter ATWOOD 358.6136 1
KANSAS Eğitilen Spotter LENORA 317.0718 2
KANSAS Eğitilen Spotter SCOTT CITY 307.84 3
KANSAS Genel OLINLIN 488.2457 0
KANSAS Genel ASHLAND 446.4218 1
KANSAS Genel KORUMA 446.11 2
KANSAS Genel MEADE STATE PARK 371.1 3

Aşağıdaki örnek her ABD durumu için en son iki olayı döndürür ve olay başına bazı bilgiler içerir. Herhangi bir seçim mantığı max(1) olmadan işleci aracılığıyla yayma gerektiren sütunlar için kullanımını (daha sonra projeden) not edebilirsiniz.

StormEvents
| top-nested of State by Ignore0=max(1),
  top-nested 2 of StartTime by Ignore1=max(StartTime),
  top-nested of EndTime by Ignore2=max(1),
  top-nested of EpisodeId by Ignore3=max(1)
| project-away Ignore*
| order by State asc, StartTime desc