Udostępnij za pośrednictwem


pivot, wtyczka

Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer

Obraca tabelę, zamieniając unikatowe wartości z jednej kolumny w tabeli wejściowej na wiele kolumn w tabeli wyjściowej i wykonując agregacje zgodnie z wymaganiami dla pozostałych wartości kolumn, które będą wyświetlane w końcowych danych wyjściowych.

Uwaga

Jeśli parametr OutputSchema nie jest określony, schemat pivot wyjściowy wtyczki jest oparty na danych wejściowych. W związku z tym wiele wykonań wtyczki przy użyciu różnych danych wejściowych może spowodować wygenerowanie innego schematu wyjściowego. Oznacza to również, że zapytanie odwołujące się do rozpakowanych kolumn może w dowolnym momencie stać się "uszkodzone". Z tego powodu nie zalecamy używania tej wtyczki do zadań automatyzacji bez określania funkcji OutputSchema.

Składnia

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

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
kolumna przestawna string ✔️ Kolumna, która ma być obracana. Każda unikatowa wartość z tej kolumny będzie kolumną w tabeli wyjściowej.
aggregationFunction string Funkcja agregacji używana do agregowania wielu wierszy w tabeli wejściowej do jednego wiersza w tabeli wyjściowej. Obecnie obsługiwane funkcje: min(), max()make_set()take_any()make_bag()make_list()dcount()sum()avg()stdev()variance(). count() Wartość domyślna to count().
column1, column2, ... string Nazwa kolumny lub rozdzielona przecinkami lista nazw kolumn. Tabela wyjściowa będzie zawierać dodatkową kolumnę dla każdej określonej kolumny. Wartość domyślna to wszystkie kolumny inne niż kolumna przestawna i kolumna agregacji.
OutputSchema Nazwy i typy oczekiwanych kolumn danych wyjściowych pivot wtyczki.

Składnia: ( ColumnName : ColumnType [, ...])

Określenie oczekiwanego schematu optymalizuje wykonywanie zapytań, nie trzeba najpierw uruchamiać rzeczywistego zapytania w celu eksplorowania schematu. Błąd jest zgłaszany, jeśli schemat czasu wykonywania nie jest zgodny ze schematem OutputSchema .

Zwraca

Funkcja przestawna zwraca obróconą tabelę z określonymi kolumnami (kolumna1, kolumna2, ...) oraz wszystkimi unikatowymi wartościami kolumn przestawnych. Każda komórka dla kolumn przestawnych będzie zawierać obliczenia funkcji agregującej.

Przykłady

Przestawianie według kolumny

Dla każdego typu zdarzeń i stanu rozpoczynającego się od "AL" zlicz liczbę zdarzeń tego typu w tym stanie.

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

Wyjście

EventType ALABAMA ALASKA
Wiatr i burza 352 1
Silny wiatr 0 95
Ekstremalne zimno/wiatr chłodny 0 10
Silny wiatr 22 0

Przestawianie według kolumny z funkcją agregacji

Dla każdego typu zdarzeń i stanu rozpoczynającego się od "AR" wyświetl łączną liczbę zgonów bezpośrednich.

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

Wyjście

EventType ARKANSAS ARIZONA
Ulewny deszcz 1 0
Wiatr i burza 1 0
Lightning 0 1
Powodzia błyskawiczna 0 6
Silny wiatr 1 0
Ciepło 3 0

Przestawnie według kolumny z funkcją agregacji i jedną dodatkową kolumną

Wynik jest identyczny z poprzednim przykładem.

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

Wyjście

EventType ARKANSAS ARIZONA
Ulewny deszcz 1 0
Wiatr i burza 1 0
Lightning 0 1
Powodzia błyskawiczna 0 6
Silny wiatr 1 0
Ciepło 3 0

Określanie kolumny przestawnej, funkcji agregacji i wielu dodatkowych kolumn

Dla każdego typu zdarzenia, źródła i stanu zsumuj liczbę zgonów bezpośrednich.

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

Wyjście

EventType Źródło ARKANSAS ARIZONA
Ulewny deszcz Menedżer awaryjny 1 0
Wiatr i burza Menedżer awaryjny 1 0
Lightning Gazeta 0 1
Powodzia błyskawiczna Wytrenowany spotter 0 2
Powodzia błyskawiczna Emisja multimediów 0 3
Powodzia błyskawiczna Gazeta 0 1
Silny wiatr Ścigania 1 0
Ciepło Gazeta 3 0

Przestawne ze schematem danych wyjściowych zdefiniowanych przez zapytanie

Poniższy przykład wybiera określone kolumny w tabeli StormEvents. Używa jawnej definicji schematu, która umożliwia ocenę różnych optymalizacji przed uruchomieniem rzeczywistego zapytania.

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

Wyjście

EventType ALABAMA ALASKA
Wiatr i burza 352 1
Silny wiatr 0 95
Burza morska Wiatr 0 0
Silny wiatr 22 0
Ekstremalne zimno/wiatr chłodny 0 10
Zimny/wiatr chłodny 0 0
Silny wiatr morski 0 0
Wiatr morski 0 0