Sdílet prostřednictvím


Modul plug-in pivot

Platí pro: ✅Microsoft FabricAzure Data Explorer

Otočí tabulku tak, že změní jedinečné hodnoty z jednoho sloupce ve vstupní tabulce do více sloupců ve výstupní tabulce a provede agregace podle potřeby u všech zbývajících hodnot sloupců, které se zobrazí v konečném výstupu.

Poznámka:

Pokud není zadán outputSchema, výstupní schéma pivot modulu plug-in je založeno na vstupních datech. Proto může více spuštění modulu plug-in pomocí různých datových vstupů vytvořit jiné výstupní schéma. To také znamená, že dotaz odkazující na rozbalené sloupce se může kdykoliv stát nefunkčním. Z tohoto důvodu nedoporučujeme používat tento modul plug-in pro úlohy automatizace bez zadání funkce OutputSchema.

Syntaxe

T | evaluate pivot(pivotColumn[, aggregationFunction] [,column1[, column2 ... ]]) [: OutputSchema]

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
pivotColumn string ✔️ Sloupec, který chcete otočit. Každá jedinečná hodnota z tohoto sloupce bude sloupec ve výstupní tabulce.
aggregationFunction string Agregační funkce sloužící k agregaci více řádků ve vstupní tabulce na jeden řádek ve výstupní tabulce. Aktuálně podporované funkce: min(), max(), , sum()take_any(), dcount()avg()variance()stdev(), make_list(), make_bag(), . count()make_set() Výchozí hodnota je count().
column1, column2, ... string Název sloupce nebo čárkami oddělený seznam názvů sloupců. Výstupní tabulka bude obsahovat další sloupec pro každý zadaný sloupec. Výchozí hodnota je všechny sloupce kromě kontingenčního sloupce a sloupce agregace.
OutputSchema Názvy a typy očekávaných sloupců výstupu pivot modulu plug-in.

Syntaxe: ( ColumnName : ColumnType [, ...])

Zadání očekávaného schématu optimalizuje provádění dotazů tím, že nemusí nejprve spustit skutečný dotaz, aby bylo možné schéma prozkoumat. Pokud schéma za běhu neodpovídá schématu OutputSchema , vyvolá se chyba.

Návraty

Pivot vrátí otočenou tabulku se zadanými sloupci (sloupec1, sloupec2, ...) a všemi jedinečnými hodnotami kontingenčních sloupců. Každá buňka pro kontingenční sloupce bude obsahovat výpočet agregační funkce.

Příklady

Pivot by a column

Pro každý typ události a stav začínající na al spočítejte počet událostí tohoto typu v tomto stavu.

StormEvents
| project State, EventType
| where State startswith "AL"
| where EventType has "Wind"
| evaluate pivot(State)

Výstup

Typ události ALABAMA ALJAŠKA
Větrná bouře 352 0
Velký vítr 0 95
Extrémní studená/větrná zimnice 0 10
Silný vítr 22 0

Pivot by a column with aggregation function

Pro každý typ události a stav začínající na ar zobrazte celkový počet přímých úmrtí.

StormEvents
| where State startswith "AR"
| project State, EventType, DeathsDirect
| where DeathsDirect > 0
| evaluate pivot(State, sum(DeathsDirect))

Výstup

Typ události ARKANSAS ARIZONA
Těžký déšť 0 0
Větrná bouře 0 0
Lightning 0 1
Velká voda 0 6
Silný vítr 0 0
Heat 3 0

Kontingenční podle sloupce s agregační funkcí a jedním dalším sloupcem

Výsledek je stejný jako v předchozím příkladu.

StormEvents
| where State startswith "AR"
| project State, EventType, DeathsDirect
| where DeathsDirect > 0
| evaluate pivot(State, sum(DeathsDirect), EventType)

Výstup

Typ události ARKANSAS ARIZONA
Těžký déšť 0 0
Větrná bouře 0 0
Lightning 0 1
Velká voda 0 6
Silný vítr 0 0
Heat 3 0

Zadání kontingenčního sloupce, agregační funkce a více dalších sloupců

Pro každý typ události, zdroj a stav sečtěte počet přímých úmrtí.

StormEvents
| where State startswith "AR"
| where DeathsDirect > 0
| evaluate pivot(State, sum(DeathsDirect), EventType, Source)

Výstup

Typ události Zdroj ARKANSAS ARIZONA
Těžký déšť Správce tísňového volání 0 0
Větrná bouře Správce tísňového volání 0 0
Lightning Noviny 0 1
Velká voda Trénovaný spotter 0 2
Velká voda Vysílání médií 0 3
Velká voda Noviny 0 1
Silný vítr Donucovacími 0 0
Heat Noviny 3 0

Pivot s výstupním schématem definovaným dotazem

Následující příklad vybere konkrétní sloupce v tabulce StormEvents. Používá explicitní definici schématu, která umožňuje vyhodnotit různé optimalizace před spuštěním skutečného dotazu.

StormEvents
| project State, EventType
| where EventType has "Wind"
| evaluate pivot(State): (EventType:string, ALABAMA:long, ALASKA:long)

Výstup

Typ události ALABAMA ALJAŠKA
Větrná bouře 352 0
Velký vítr 0 95
Mořské bouřmové vítr 0 0
Silný vítr 22 0
Extrémní studená/větrná zimnice 0 10
Studená/větrná zimnice 0 0
Mořská silná vítr 0 0
Marine High Wind 0 0