Оператор summarize
Создает таблицу, которая объединяет содержимое входной таблицы.
Синтаксис
T| summarize
[ SummarizeParameters ] [[Столбец=
] Агрегирование [,
...]] [by
[Столбец=
] GroupExpression [,
...]]
Дополнительные сведения о соглашениях о синтаксисе.
Параметры
Имя | Тип | Обязательно | Описание |
---|---|---|---|
Столбец | string |
Имя столбца результатов. По умолчанию это имя, получаемое из выражения. | |
Агрегирование | string |
✔️ | Вызов статистической функции , такой как count() или avg() , с именами столбцов в качестве аргументов. |
GroupExpression | скаляр | ✔️ | Скалярное выражение, которое может ссылаться на входные данные. Выходные данные будут содержать такое количество записей, которое будет соответствовать количеству несовпадающих значений во всех выражениях групп. |
SummarizeParameters | string |
Ноль или более параметров, разделенных пробелами, в виде значения имени= , которые управляют поведением. См. раздел Поддерживаемые параметры. |
Примечание
Если таблица входных данных пуста, выходные данные зависят от того, используется ли GroupExpression.
- Если свойство GroupExpression не предоставлено, вывод будет представлен одной (пустой) строкой.
- Если же свойство GroupExpression предоставлено, вывод не будет иметь строк.
Поддерживаемые параметры
Имя | Описание |
---|---|
hint.num_partitions |
Указывает количество секций, используемых для совместного использования нагрузки запросов на узлах кластера. См. запрос на перетасовку |
hint.shufflekey=<key> |
Запрос shufflekey разделяет нагрузку на узлы кластера, используя ключ для секционирования данных. См. запрос на перетасовку |
hint.strategy=shuffle |
Запрос shuffle стратегии разделяет нагрузку на узлы кластера, где каждый узел будет обрабатывать одну секцию данных. См. запрос на перетасовку |
Возвращаемое значение
Входные строки объединяются в группы с одинаковыми значениями выражений by
. Затем указанные агрегатные функции выполняют вычисления и создают строку для каждой группы. Результат содержит столбцы by
и хотя бы один столбец для каждого вычисленного статистического выражения. (Некоторые агрегатные функции возвращают несколько столбцов).
Результат содержит столько строк, сколько существует несовпадающих комбинаций значений by
(которые могут быть равны нулю). Если ключи группы не указаны, в результате будет содержаться одна запись.
Чтобы суммировать диапазоны числовых значений, можно ограничить диапазоны дискретными значениями с помощью bin()
.
Примечание
- Для агрегатных выражений и выражений группирования допускаются произвольные выражения, но эффективнее использовать простые имена столбцов или функцию
bin()
для числовых столбцов. - Автоматические почасовые объединения для столбцов "Дата и время" больше не поддерживаются. Вместо этого используйте явное группирование. Например,
summarize by bin(timestamp, 1h)
.
Значения агрегатов по умолчанию
В следующей таблице перечислены значения по умолчанию для агрегатов:
Оператор | Значение по умолчанию |
---|---|
count() , countif() , dcount() , dcountif() , count_distinct() , sum() , sumif() , variance() , varianceif() , stdev() , stdevif() |
0 |
make_bag() , make_bag_if() , make_list() , make_list_if() , make_set() , make_set_if() |
пустой динамический массив ([]) |
Все остальные | null |
Примечание
При применении этих статистических выражений к сущностям, которые содержат значения NULL, значения NULL игнорируются и не учитываются при вычислении. Примеры см. в разделе Статистические выражения значений по умолчанию.
Примеры
Уникальное сочетание
Следующий запрос определяет, какие уникальные State
сочетания и EventType
существуют для штормов, которые привели к прямой травме. Здесь нет статистических функций, только ключи group-by. В выходных данных будут показаны только столбцы для этих результатов.
StormEvents
| where InjuriesDirect > 0
| summarize by State, EventType
Выходные данные
В следующей таблице показаны только первые 5 строк. Чтобы просмотреть полные выходные данные, выполните запрос.
Состояние | EventType |
---|---|
Техас | Шквалистый ветер |
Техас | Внезапное наводнение |
Техас | Зимняя погода |
Техас | Очень сильный ветер |
Техас | Наводнение |
... | ... |
Минимальная и максимальная метки времени
Находит минимальное и максимальное количество сильных дождей на Гавайях. Предложение group-by отсутствует, поэтому в выходных данных есть только одна строка.
StormEvents
| where State == "HAWAII" and EventType == "Heavy Rain"
| project Duration = EndTime - StartTime
| summarize Min = min(Duration), Max = max(Duration)
Выходные данные
Min | Max |
---|---|
01:08:00 | 11:55:00 |
Количество уникальных значений
Создайте строку для каждого континента, отображающую количество городов, в которых выполняются действия. Поскольку для свойства "continent" существует несколько значений, в предложении "by" не требуется функция группирования:
StormEvents
| summarize TypesOfStorms=dcount(EventType) by State
| sort by TypesOfStorms
Выходные данные
В следующей таблице показаны только первые 5 строк. Чтобы просмотреть полные выходные данные, выполните запрос.
Состояние | TypesOfStorms |
---|---|
Техас | 27 |
Калифорния | 26 |
ПЕНСИЛЬВАНИЯ | 25 |
Грузия | 24 |
Иллинойс | 23 |
... | ... |
Гистограмма
В следующем примере вычисляется гистограмма штормового типа со штормами, дляющимися дольше 1 дня. Так как Duration
имеет много значений, используйте для bin()
группировки его значений в 1-дневные интервалы.
StormEvents
| project EventType, Duration = EndTime - StartTime
| where Duration > 1d
| summarize EventCount=count() by EventType, Length=bin(Duration, 1d)
| sort by Length
Выходные данные
EventType | Длина | EventCount |
---|---|---|
Засухи | 30.00:00:00 | 1646 |
Wildfire | 30.00:00:00 | 11 |
Тепла | 30.00:00:00 | 14 |
Наводнение | 30.00:00:00 | 20 |
Сильный ливень | 29.00:00:00 | 42 |
... | ... | ... |
Значения по умолчанию для агрегатов
Если входные данные оператора имеют по крайней summarize
мере один пустой ключ group-by, его результат также будет пустым.
Если входные данные оператора не имеют пустого summarize
ключа group-by, результатом являются значения статистических выражений по умолчанию, используемые в summarize
разделе Дополнительные сведения см. в разделе Значения агрегатов по умолчанию.
datatable(x:long)[]
| summarize any_x=take_any(x), arg_max_x=arg_max(x, *), arg_min_x=arg_min(x, *), avg(x), buildschema(todynamic(tostring(x))), max(x), min(x), percentile(x, 55), hll(x) ,stdev(x), sum(x), sumif(x, x > 0), tdigest(x), variance(x)
Выходные данные
any_x | arg_max_x | arg_min_x | avg_x | schema_x | max_x | min_x | percentile_x_55 | hll_x | stdev_x | sum_x | sumif_x | tdigest_x | variance_x |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Не число | 0 | 0 | 0 | 0 |
Результатом avg_x(x)
является NaN
деление на 0.
datatable(x:long)[]
| summarize count(x), countif(x > 0) , dcount(x), dcountif(x, x > 0)
Выходные данные
count_x | countif_ | dcount_x | dcountif_x |
---|---|---|---|
0 | 0 | 0 | 0 |
datatable(x:long)[]
| summarize make_set(x), make_list(x)
Выходные данные
set_x | list_x |
---|---|
[] | [] |
Агрегат avg суммирует все значения, отличные от NULL, и подсчитывает только те, которые участвовали в вычислении (не учитывает значения NULL).
range x from 1 to 4 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize sum(y), avg(y)
Выходные данные
sum_y | avg_y |
---|---|
15 | 5 |
При обычном расчете значения NULL будут учитываться:
range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize count(y)
Выходные данные
count_y |
---|
2 |
range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize make_set(y), make_set(y)
Выходные данные
set_y | set_y1 |
---|---|
[5.0] | [5.0] |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по