top-nested işleci
top-nested
işleci hiyerarşik toplama ve değer seçimi gerçekleştirir.
Bölgeler, satış temsilcileri ve satılan tutarlar gibi satış bilgilerini içeren bir tablonuz olduğunu düşünün. Operatör top-nested
, "Satışa göre ilk beş bölge nedir ve bu bölgelerin her birinde ilk üç satış temsilcisi kimdir?" gibi karmaşık soruları yanıtlamanıza yardımcı olabilir.
Kaynak veriler, bölge gibi ilk top-nested
yan tümcede ayarlanan ölçütlere göre bölümlenmiştir. Ardından işleç, satış tutarları ekleme gibi bir toplama kullanarak her bölümdeki en önemli kayıtları seçer. Sonraki top-nested
her yan tümce, önceki yan tümce tarafından oluşturulan bölümleri iyileştirerek daha kesin gruplardan oluşan bir hiyerarşi oluşturur.
Sonuç, yan tümce başına iki sütun içeren bir tablodur. Bir sütun bölge gibi bölümleme değerlerini tutarken, diğer sütun satış toplamı gibi toplama hesaplamasının sonuçlarını tutar.
Syntax
T|
top-nested
[ N ] of
İfade [with
others
=
ConstExpr] by
Toplama [asc
| desc
] [,
top-nested
... ]
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
Ad | Tür | Gerekli | Açıklama |
---|---|---|---|
T | string |
✔️ | Giriş tablosal ifadesi. |
N | int |
Bu hiyerarşi düzeyi için döndürülecek en yüksek değerlerin sayısı. Atlanırsa, tüm benzersiz değerler döndürülür. | |
İfade | string |
✔️ | Bu hiyerarşi düzeyi için döndürülecek değeri gösteren giriş kaydı üzerindeki bir ifade. Genellikle , T'den bir sütuna başvurur veya bir sütunda bin() gibi bir hesaplama içerir. İsteğe bağlı olarak, bir çıkış sütun adını Ad= İfadesi olarak ayarlayın. |
ConstExpr | string |
Belirtilirse, her hiyerarşi düzeyi için, en üste gelemedi tüm kayıtlar üzerinde toplama değeriyle bir kayıt eklenir. | |
Toplama | string |
Aynı İfade değerine sahip kayıtlara uygulanan toplama işlevi. Sonuç, en üstteki kayıtları belirler. Bkz . Desteklenen toplama işlevleri. İsteğe bağlı olarak, bir çıkış sütun adını Ad= Toplama olarak ayarlayın. |
Desteklenen toplama işlevleri
Aşağıdaki toplama işlevleri desteklenir:
Not
Toplamaların cebirsel bileşimleri de desteklenir.
Döndürülenler
Her yan tümce için iki sütun içeren bir tablo. Bir sütun Expr kullanılarak hesaplanan benzersiz değerler içerir ve diğer sütun toplama hesaplamasından elde edilen sonuçları gösterir.
Diğer sütunlardan veri ekleme
Çıkış tablosunda yalnızca yan tümce İfadesi olarak top-nested
belirtilen sütunlar görüntülenir.
Belirli bir düzeydeki bir sütunun tüm değerlerini eklemek için:
- N değerini belirtmeyin.
- İfade değeri olarak sütun adını kullanın.
- Toplama değeri olarak kullanın
Ignore=max(1)
. - Projeden uzakta olan gereksiz
Ignore
sütunu kaldırın.
Örnek için bkz. Diğer sütunlardan ek verilerle durum başına en son olayları alma.
Performansla ilgili önemli noktalar
Kayıtların sayısı yan tümce sayısıyla top-nested
üstel olarak artabilir ve N sınırı belirtilmezse kayıt büyümesi daha da hızlı olur. Bu işleç önemli miktarda kaynak tüketebilir.
Toplamanın dağılımı önemli ölçüde tekdüze değilse, N belirterek döndürülecek ayrı değerlerin sayısını sınırlayın. Ardından constExpr belirtimini with
others
=
kullanarak diğer tüm servis taleplerinin ağırlığına ilişkin bir gösterge elde edin.
Örnekler
işlecini top-nested
kullanmaya başlama
Aşağıdaki sorgu tabloyu sütuna StormEvents
State
göre bölümler ve her durum için toplam enlemi hesaplar. Sorgu, enlem toplamı en yüksek olan ilk iki durumu seçer. Bu ilk iki durumda, sorgu verileri gruplandırır Source
ve en yüksek enlem toplamına sahip ilk üç kaynağı seçer. İlk iki durumdaki ilk üç kaynağın her biri için sorgu verileri gruplandırır EndLocation
ve en yüksek enlem toplamıyla öğesini seçer EndLocation
.
StormEvents // Data source.
| top-nested 2 of State by sum(BeginLat), // Top 2 States by total latitude.
top-nested 3 of Source by sum(BeginLat), // Top 3 Sources by total latitude in each State.
top-nested 1 of EndLocation by sum(BeginLat) // Top 1 EndLocation by total latitude in each Source and State.
Çıkış
Durum | aggregated_State | Source | aggregated_Source | EndLocation | aggregated_EndLocation |
---|---|---|---|---|---|
KANSAS | 87771.2355000001 | Kolluk | 18744.823 | FT SCOTT | 264.858 |
KANSAS | 87771.2355000001 | Genel | 22855.6206 | BUCKLIN | 488.2457 |
KANSAS | 87771.2355000001 | Eğitilmiş Gözcü | 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ğitilmiş Benekleyici | 13997.7124 | CLAUDE | 421.44 |
Başka bir sütundaki verilerle iç içe yerleştirilmiş en üstteki sonuçları geliştirme
Aşağıdaki sorgu, ek top-nested
bir yan tümcesi getirerek önceki örneği oluşturur. Bu yeni yan tümcede sayısal belirtim olmaması, bölümlerin tüm ayrı değerlerinin EventType
ayık olmasına neden olur. max(1)
Toplama işlevi yalnızca bir yer tutucu olduğundan sonucu ilgisiz hale getirilir, bu nedenle proje dışarıda işleci sütunu kaldırırIgnore
. Sonuç, daha önce toplanan verilerle ilişkili tüm olay türlerini gösterir.
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),
top-nested of EventType by Ignore = max(1)
| project-away Ignore
Çıkış
Durum | aggregated_State | Source | aggregated_Source | EndLocation | aggregated_EndLocation | Olay türü |
---|---|---|---|---|---|---|
TEXAS | 123400.51009999994 | Genel | 13650.907900000002 | AMARİLLO | 246.25979999999998 | Dolu |
TEXAS | 123400.51009999994 | Genel | 13650.907900000002 | AMARİLLO | 246.25979999999998 | Fırtına Rüzgarı |
KANSAS | 87771.235500000068 | Genel | 22855.6206 | BUCKLIN | 488.2457 | Sel |
KANSAS | 87771.235500000068 | Genel | 22855.6206 | BUCKLIN | 488.2457 | Fırtına Rüzgarı |
KANSAS | 87771.235500000068 | Genel | 22855.6206 | BUCKLIN | 488.2457 | Dolu |
TEXAS | 123400.51009999994 | Eğitilmiş Benekleyici | 13997.712400000009 | CLAUDE | 421.44 | Dolu |
KANSAS | 87771.235500000068 | Kolluk | 18744.823000000004 | FT SCOTT | 264.858 | Ani Sel |
KANSAS | 87771.235500000068 | Kolluk | 18744.823000000004 | FT SCOTT | 264.858 | Fırtına Rüzgarı |
KANSAS | 87771.235500000068 | Kolluk | 18744.823000000004 | FT SCOTT | 264.858 | Sel |
TEXAS | 123400.51009999994 | Kolluk | 37228.596599999961 | PERRYTON | 289.3178 | Dolu |
... | ... | ... | ... | ... | ... |
Dışlanan verileri araştırmak için kullanın with
others
Belirtim, bir top-nested
yan tümce içine with
others
eklendiğinde, en üstteki sonuçlardan hariç tutulan verileri toplayan ek bir kayıt getirir. Aşağıdaki sorguda, ve aggregated_State
sütunlarındaState
, Kansas ve Texas dışındaki tüm eyaletlerin kolektif enlemini temsil eden ek bir kayıt oluşturulur. Ayrıca ve EndLocation
aggregated_EndLocation
sütununda fazladan dokuz kayıt vardır. Bu kayıtlar, her durum ve kaynak içinde en üst konum olarak nitelenmeyen birleştirilmiş uç konum enlemini gösterir.
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)
Çıkış
Durum | aggregated_State | Source | aggregated_Source | EndLocation | aggregated_EndLocation |
---|---|---|---|---|---|
KANSAS | 87771.2355000001 | Kolluk | 18744.823 | FT SCOTT | 264.858 |
KANSAS | 87771.2355000001 | Genel | 22855.6206 | BUCKLIN | 488.2457 |
KANSAS | 87771.2355000001 | Eğitilmiş Benekleyici | 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ğitilmiş Benekleyici | 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ğitilmiş Benekleyici | 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ğitilmiş Benekleyici | 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, önceki örnekte kullanılan ilk düzey için aynı sonuçları gösterir.
StormEvents
| where State !in ('TEXAS', 'KANSAS')
| summarize sum(BeginLat)
Çıkış
sum_BeginLat |
---|
1149279.5923 |
Hiyerarşik sonuçları sıralama
Kapsamlı bir sıralama düzeni elde etmek için aşağıdaki sorgu, geçerli hiyerarşi düzeyindeki her bir değer için grup başına dizin tabanlı sıralamayı kullanır. Bu sıralama, nihai iç içe düzeye göre sonucu düzenlemeye yöneliktir, bu durumda EndLocation
.
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)
| sort 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
Çıkış
Durum | Source | EndLocations | endLocationSums | Endeksi |
---|---|---|---|---|
TEXAS | Eğitilmiş Gözcü | CLAUDE | 421.44 | 0 |
TEXAS | Eğitilmiş Gözcü | AMARİLLO | 316.8892 | 1 |
TEXAS | Eğitilmiş Gözcü | DALHART | 252.6186 | 2 |
TEXAS | Eğitilmiş Gözcü | PERRYTON | 216.7826 | 3 |
TEXAS | Kolluk | PERRYTON | 289.3178 | 0 |
TEXAS | Kolluk | LEAKEY | 267.9825 | 1 |
TEXAS | Kolluk | BRACKETTVILLE | 264.3483 | 2 |
TEXAS | Kolluk | GİLMER | 261.9068 | 3 |
KANSAS | Eğitilmiş Gözcü | SHARON SPGS | 388.7404 | 0 |
KANSAS | Eğitilmiş Gözcü | ATWOOD | 358.6136 | 1 |
KANSAS | Eğitilmiş Gözcü | LENORA | 317.0718 | 2 |
KANSAS | Eğitilmiş Gözcü | SCOTT CITY | 307.84 | 3 |
KANSAS | Genel | BUCKLIN | 488.2457 | 0 |
KANSAS | Genel | ASHLAND | 446.4218 | 1 |
KANSAS | Genel | KORUMA | 446.11 | 2 |
KANSAS | Genel | MEADE EYALET PARKI | 371.1 | 3 |
Diğer sütunlardan ek verilerle durum başına en son olayları alma
Aşağıdaki sorgu, ilgili olay ayrıntılarıyla birlikte her ABD eyaleti için en son iki olayın nasıl alınduğunu gösterir. tarafından tanımlanan Ignore*
ve herhangi bir seçim mantığı uygulamadan sorgu aracılığıyla veri yayılmaya yardımcı olan belirli sütunların içinde kullanımına max(1)
dikkat edin.
StormEvents
| top-nested of State by Ignore0=max(1), // Partition the data by each unique value of state.
top-nested 2 of StartTime by Ignore1=max(StartTime), // Get the 2 most recent events in each state.
top-nested of EndTime by Ignore2=max(1), // Append the EndTime for each event.
top-nested of EpisodeId by Ignore3=max(1) // Append the EpisodeId for each event.
| project-away Ignore* // Remove the unnecessary aggregation columns.
| order by State asc, StartTime desc // Sort results alphabetically and chronologically.
Diğer sütunlardan ek verilerle kimlik başına en son kayıtları alma
Aşağıdaki sorgu, kimlik başına en son kayıtları ayıklamayı gösterir ve önceki örnekte tanıtılan kavramları temel alır. first top-nested
yan tümcesi, verileri farklı değerlerine id
göre bölümler. Sonraki yan tümce, her id
için öğesini timestamp
temel alan en son iki kaydı tanımlar. Diğer bilgiler belirtilmemiş bir sayı ve rastgele max(1)
toplama ile birlikte bir top-nested
işleç kullanılarak eklenir. Son olarak, gereksiz toplama sütunları işleci kullanılarak project-away
kaldırılır.
datatable(id: string, timestamp: datetime, otherInformation: string) // Create a source datatable.
[
"Barak", datetime(2015-01-01), "1",
"Barak", datetime(2016-01-01), "2",
"Barak", datetime(2017-01-20), "3",
"Donald", datetime(2017-01-20), "4",
"Donald", datetime(2017-01-18), "5",
"Donald", datetime(2017-01-19), "6"
]
| top-nested of id by Ignore0=max(1), // Partition the data by each unique value of id.
top-nested 2 of timestamp by Ignore1=max(timestamp), // Get the 2 most recent events for each state.
top-nested of otherInformation by Ignore2=max(1) // Append otherInformation for each event.
| project-away Ignore0, Ignore1, Ignore2 // Remove the unnecessary aggregation columns.
Çıkış
kimlik | timestamp | otherInformation |
---|---|---|
Bey | 2016-01-01T00:00:00Z | 2 |
Donald | 2017-01-19T00:00:00Z | 6 |
Bey | 2017-01-20T00:00:00Z | 3 |
Donald | 2017-01-20T00:00:00Z | 4 |
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin