top-nested işleci
Şunlar için geçerlidir: ✅Microsoft Fabric✅Azure Veri Gezgini✅ Azure İzleyici✅Microsoft Sentinel
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 hassas grupların hiyerarşisini oluşturur.
Sonuç, yan tümce başına iki sütunu olan 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.
Sözdizimi
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 | Zorunlu | 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 ayrı 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 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ütunu adını Ad = İfadesi olarak ayarlayın. |
ConstExpr | string |
Belirtilirse, her hiyerarşi düzeyi için bir kayıt, en üste gelemedi tüm kayıtlar üzerinde toplama değeriyle 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ütunu 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ütunlu 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.
yan tümcesini with
others
kullanma
işlecini top-nested
ile kullanmak with
others
, en iyi içeriğinizi daha geniş bir veri kümesinde bağlamsallaştırılmış olarak görme olanağı sağlar. Verileri görsel olarak işlenirken verilerinizi bu şekilde değerlendirmek değerlidir.
Diğer sütunlardan veri ekleme
Çıkış tablosunda yalnızca yan tümce Expr 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)
. - Proje dışı olan gereksiz
Ignore
sütunu kaldırın.
Bir örnek için bkz . Diğer sütun verileriyle durum başına en son olaylar.
Performans değerlendirmeleri
Kayıtların sayısı yan tümce sayısıyla top-nested
üstel olarak artabilir ve N parametresi belirtilmezse kayıt büyümesi daha da hızlı olur. Bu işleç önemli miktarda kaynak tüketebilir.
Toplama dağılımı düzensizse, N belirterek döndürülecek ayrı değerlerin sayısını sınırlayın. Ardından constExpr yan tümcesini kullanarak with
others
=
diğer tüm servis taleplerinin ağırlığını anlayın.
Örnekler
En fazla hasar gören durumlar, olay türleri ve bitiş konumları mal hasarına göre
Aşağıdaki sorgu tabloyu sütuna StormEvents
State
göre bölümler ve her durum için toplam özellik hasarını hesaplar. Sorgu, en fazla özellik hasarına sahip ilk iki durumu seçer. Bu ilk iki durumda, sorgu verileri gruplandırır EventType
ve en çok zarara sahip ilk üç olay türünü seçer. Ardından sorgu verileri gruplandırarak EndLocation
en yüksek hasara sahip olan öğesini seçer EndLocation
. Muhtemelen fırtına olaylarının büyük doğasından veya bitiş konumunu belgelememelerinden dolayı sonuçlarda yalnızca bir EndLocation
değer görünür.
StormEvents // Data source.
| top-nested 2 of State by sum(DamageProperty), // Top 2 States by total damaged property.
top-nested 3 of EventType by sum(DamageProperty), // Top 3 EventType by total damaged property for each State.
top-nested 1 of EndLocation by sum(DamageProperty) // Top 1 EndLocation by total damaged property for each EventType and State.
| project State, EventType, EndLocation, StateTotalDamage = aggregated_State, EventTypeTotalDamage = aggregated_EventType, EndLocationDamage = aggregated_EndLocation
Çıktı
State | EventType | EndLocation | StateTotalDamage | EventTypeTotalDamage | EndLocationDamage |
---|---|---|---|---|---|
CALIFORNIA | Wildfire | 1445937600 | 1326315000 | 1326315000 | |
CALIFORNIA | HighWind | 1445937600 | 61320000 | 61320000 | |
CALIFORNIA | DebrisFlow | 1445937600 | 48000000 | 48000000 | |
OKLAHOMA | IceStorm | 915470300 | 826000000 | 826000000 | |
OKLAHOMA | WinterStorm | 915470300 | 40027000 | 40027000 | |
OKLAHOMA | Sel | TİCARET | 915470300 | 21485000 | 20000000 |
Mülkiyet hasarı with
others
gruplandırılmış ilk beş eyalet
Aşağıdaki örnek top-nested
, en çok özellik hasarı olan ilk beş durumu tanımlamak için işlecini kullanır ve diğer tüm durumlarda hasarlı özelliği gruplandırmak için yan tümcesini with
others
kullanır. Ardından, komutunu kullanarak render
ilk beş durum ve diğer tüm durumlar piechart
için hasarlı özelliği görselleştirir.
StormEvents
| top-nested 5 of State with others="OtherStates" by sum(DamageProperty)
| render piechart
Çıktı
Diğer sütun verileriyle durum başına en son olaylar
Aşağıdaki sorgu, ilgili olay ayrıntılarıyla her ABD durumu için en son iki olayı alır. İç içe seçim mantığını kullanmadan verileri yaymak için belirli sütunların içinde kullanır max(1)
. Oluşturulan Ignore
toplama sütunları kullanılarak project-away
kaldırılır.
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ütun verileriyle kimlik başına en son kayıtlar
Aşağıdaki top-nested
örnek, kimlik başına en son kayıtları ayıklar ve önceki örnekte tanıtılan kavramları temel alır. İlk top-nested
yan tümce, verileri yer tutucu olarak kullanmanın Ignore0=max(1)
farklı değerlerine id
göre bölümlere ayırır. Her id
için, temelinde en son iki kaydı timestamp
tanımlar. Diğer bilgiler, bir sayı belirtilmeden bir top-nested
işleç kullanılarak eklenir ve yer tutucu olarak kullanılır Ignore2=max(1)
. 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.
Çıktı
id | 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 |