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-nested
top-nested
[ ,
top-nested
,
]...
Burada Topnestedyan tümcesi aşağıdaki sözdizimine sahiptir:
[N] [ ExprName
=
] Expr
[ with
ConstExpr
others
=
] by
[ AggName
=
] Aggregation
asc
| 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ürlong
sabit değeri. Atlanırsa, tüm benzersiz değerler döndürülür.ExprName
: Belirtilmişse, değerineExpr
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ıAggName
değeri olarak ayarlar.Aggregation
: Aynı değeriniExpr
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:
- Sum (),
- Count (),
- Max (),
- Min (),
- DCount (),
- AVG (),
- yüzdebirlik ()ve
- percentilew (). Toplamaların her türlü cebirsel birleşimi de desteklenir.
asc
ya dadesc
(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ırBir 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ütunuIgnore
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