Поделиться через


Оператор суммирования

Переключайте службы с помощью раскрывающегося списка Версия. Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Создает таблицу, которая объединяет содержимое входной таблицы.

Syntax

T| summarize [ SummarizeParameters ] [[Столбец=] Агрегирование [, ...]] [byСтолбец] [ Столбец=] GroupExpression [, ...]]

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

Parameters

Name Type Required Description
Column string Имя столбца результатов. По умолчанию это имя, получаемое из выражения.
Aggregation string ✔️ Вызов функции агрегирования , например count() или avg()с именами столбцов в качестве аргументов.
GroupExpression scalar ✔️ Скалярное выражение, которое может ссылаться на входные данные. Выходные данные имеют столько записей, сколько имеются уникальные значения всех выражений группы.
SummarizeParameters string Ноль или более разделенных пробелами параметров в виде значения имени=, которое управляет поведением. См. поддерживаемые параметры.

Note

Если входная таблица пуста, выходные данные зависят от того, используется ли GroupExpression :

  • Если groupExpression не указан, выходные данные являются одной (пустой) строкой.
  • Если указан параметр GroupExpression , выходные данные не имеют строк.

Поддерживаемые параметры

Name Description
hint.num_partitions Указывает количество секций, используемых для совместного использования нагрузки запроса на узлы кластера. См. запрос перемешивания
hint.shufflekey=<key> Запрос shufflekey использует нагрузку запроса на узлы кластера, используя ключ для секционирования данных. См. запрос перемешивания
hint.strategy=shuffle Запрос shuffle стратегии использует нагрузку запроса на узлы кластера, где каждый узел обрабатывает одну секцию данных. См. запрос перемешивания

Returns

Входные строки объединяются в группы с одинаковыми значениями выражений by . Затем указанные агрегатные функции выполняют вычисления и создают строку для каждой группы. Результат содержит столбцы by и хотя бы один столбец для каждого вычисленного статистического выражения. (Некоторые агрегатные функции возвращают несколько столбцов).

Результат имеет столько строк, сколько есть различные сочетания значений by (которые могут быть нулевыми). Если ключи группы не указаны, в результате будет содержаться одна запись.

Чтобы суммировать диапазоны числовых значений, можно ограничить диапазоны дискретными значениями с помощью bin().

Note

  • Для агрегатных выражений и выражений группирования допускаются произвольные выражения, но эффективнее использовать простые имена столбцов или функцию bin() для числовых столбцов.
  • Автоматические почасовые ячейки для столбцов datetime больше не поддерживаются. Вместо этого используйте явное группирование. Например, summarize by bin(timestamp, 1h).

Значения агрегатов по умолчанию

В следующей таблице перечислены значения по умолчанию для агрегатов:

Operator Значение по умолчанию
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

Note

При применении этих агрегатов к сущностям, которые включают значения NULL, значения NULL игнорируются и не учитываются в вычислении. См. примеры .

Examples

Примеры, приведенные в этой статье, используют общедоступные таблицы в кластере справки, например StormEvents таблицу в базе данных Samples .

В примерах этой статьи используются общедоступные таблицы, такие как Weather таблица в коллекции примеров Weather Analytics. Возможно, потребуется изменить имя таблицы в примере запроса, чтобы она соответствовала таблице в рабочей области.

В следующем примере определяется, какие уникальные сочетания и State существуют для штормовEventType, которые привели к прямой травме. Здесь нет статистических функций, только ключи group-by. Выходные данные отображают только столбцы для этих результатов.

StormEvents
| where InjuriesDirect > 0
| summarize by State, EventType

Output

В следующей таблице показаны только первые 5 строк. Чтобы просмотреть полные выходные данные, выполните запрос.

State EventType
TEXAS Ураганный ветер
TEXAS Паводок
TEXAS Холод
TEXAS Высокий ветер
TEXAS Flood
... ...

В следующем примере найдены минимальные и максимальные сильные дожди на Гавайях. Нет предложения group-by, поэтому в выходных данных есть только одна строка.

StormEvents
| where State == "HAWAII" and EventType == "Heavy Rain"
| project Duration = EndTime - StartTime
| summarize Min = min(Duration), Max = max(Duration)

Output

Min Max
01:08:00 11:55:00

В следующем примере вычисляется количество уникальных типов событий storm для каждого состояния и сортирует результаты по количеству уникальных типов штормов:

StormEvents
| summarize TypesOfStorms=dcount(EventType) by State
| sort by TypesOfStorms

Output

В следующей таблице показаны только первые 5 строк. Чтобы просмотреть полные выходные данные, выполните запрос.

State TypesOfStorms
TEXAS 27
CALIFORNIA 26
PENNSYLVANIA 25
GEORGIA 24
ILLINOIS 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

Output

EventType Length EventCount
Drought 30.00:00:00 1646
Wildfire 30.00:00:00 11
Heat 30.00:00:00 14
Flood 30.00:00:00 20
Ливень 29.00:00:00 42
... ... ...

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

Если входные данные оператора не имеют пустого summarize ключа по группе, результатом является значение по умолчанию агрегатов, используемых в 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)

Output

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
NaN 0 0 0 0

Результатом avg_x(x) является NaN деление на 0.

datatable(x:long)[]
| summarize  count(x), countif(x > 0) , dcount(x), dcountif(x, x > 0)

Output

count_x countif_ dcount_x dcountif_x
0 0 0 0
datatable(x:long)[]
| summarize  make_set(x), make_list(x)

Output

set_x list_x
[] []

Среднее агрегирование суммирует только значения, отличные от NULL, и вычисляет только эти значения в вычислении, игнорируя все значения NULL.

range x from 1 to 4 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize sum(y), avg(y)

Output

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)

Output

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)

Output

set_y set_y1
[5.0] [5.0]