Подключаемый модуль pivot

Поворачивает таблицу путем преобразования уникальных значений из одного столбца входной таблицы в несколько столбцов в выходной таблице и выполняет агрегирование по мере необходимости для всех оставшихся значений столбцов, которые будут отображаться в выходных данных.

Примечание

Если OutputSchema не указан, схема выходных данных подключаемого pivot модуля основана на входных данных. Таким образом, несколько выполнений подключаемого модуля с использованием разных входных данных могут привести к по-разному. Это также означает, что запрос, ссылающийся на неупакованные столбцы, может стать "неработающим" в любое время. По этой причине мы не рекомендуем использовать этот подключаемый модуль для заданий автоматизации без указания функции OutputSchema.

Синтаксис

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

Дополнительные сведения о соглашениях о синтаксисе.

Параметры

Имя Тип Обязательно Описание
pivotColumn string ✔️ Столбец для поворота. Каждое уникальное значение из этого столбца будет столбцом в выходной таблице.
aggregationFunction string Агрегатная функция, используемая для агрегирования нескольких строк входной таблицы с одной строкой в выходной таблице. Поддерживаемые в настоящее время функции: min(), max(), take_any(), sum(), dcount()avg(), stdev(), variance(), make_list(), make_bag(), , make_set(). count() Значение по умолчанию — count().
column1, column2, ... string Имя столбца или разделенный запятыми список имен столбцов. Выходная таблица будет содержать дополнительный столбец для каждого указанного столбца. Значением по умолчанию являются все столбцы, кроме сводного столбца и столбца агрегирования.
OutputSchema Имена и типы ожидаемых столбцов выходных данных подключаемого pivot модуля.

Синтаксис: (ColumnName:ColumnType [, ...] )

Указание ожидаемой схемы оптимизирует выполнение запроса, не выполняя сначала фактический запрос для изучения схемы. Если схема времени выполнения не соответствует схеме OutputSchema , возникает ошибка.

Возвращаемое значение

Pivot возвращает повернутую таблицу с указанными столбцами (column1, column2, ...) и всеми уникальными значениями столбцов сводки. Каждая ячейка для сводных столбцов будет содержать вычисление агрегатной функции.

Примеры

Сводка по столбцу

Для каждого типа событий и состояния, начиная с AL, подсчитайте количество событий этого типа в этом состоянии.

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

Выходные данные

EventType АЛАБАМА АЛЯСКА
Шквалистый ветер 352 1
Очень сильный ветер 0 95
Экстремальный холод/ветер холод 0 10
Сильный ветер 22 0

Сводка по столбцу с агрегатной функцией

Для каждого типа события и состояния, начинающегося с AR, отображается общее число прямых смертей.

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

Выходные данные

EventType АРКАНЗАС АРИЗОНА
Сильный ливень 1 0
Шквалистый ветер 1 0
Lightning 0 1
Внезапное наводнение 0 6
Сильный ветер 1 0
Тепла 3 0

Сводка по столбцу с агрегатной функцией и одним дополнительным столбцом

Результат идентичен предыдущему примеру.

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

Выходные данные

EventType АРКАНЗАС АРИЗОНА
Сильный ливень 1 0
Шквалистый ветер 1 0
Lightning 0 1
Внезапное наводнение 0 6
Сильный ветер 1 0
Тепла 3 0

Указание сводного столбца, агрегатной функции и нескольких дополнительных столбцов

Для каждого типа события, источника и состояния суммируйте количество прямых смертей.

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

Выходные данные

EventType Source АРКАНЗАС АРИЗОНА
Сильный ливень Специалист по управлению в чрезвычайных ситуациях 1 0
Шквалистый ветер Специалист по управлению в чрезвычайных ситуациях 1 0
Lightning Газета 0 1
Внезапное наводнение Подготовленный корректировщик 0 2
Внезапное наводнение Широковещательные носители 0 3
Внезапное наводнение Газета 0 1
Сильный ветер Правоприменение 1 0
Тепла Газета 3 0

Сводка с помощью определяемой запросом выходной схемы

В следующем примере выбираются определенные столбцы в таблице StormEvents. В нем используется явное определение схемы, которое позволяет оценить различные оптимизации перед выполнением фактического запроса.

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

Выходные данные

EventType АЛАБАМА АЛЯСКА
Шквалистый ветер 352 1
Очень сильный ветер 0 95
Морской грозовой ветер 0 0
Сильный ветер 22 0
Экстремальный холод/ветер холод 0 10
Холодный/ветровый холод 0 0
Морской сильный ветер 0 0
Морской сильный ветер 0 0