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


make_set() (функция агрегирования)

Область применения: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

dynamic Создает массив набора уникальных значений, которые принимают в группе.

Значения NULL игнорируются и не учитываются в вычислении.

Примечание.

Эта функция используется в сочетании с оператором сводки.

Устаревшие псевдонимы: makeset()

Синтаксис

make_set(expr [, maxSize])

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

Параметры

Имя (название) Type Обязательно Описание
expr string ✔️ Выражение, используемое для вычисления агрегирования.
maxSize int Максимальное количество возвращаемых элементов. Значение по умолчанию и максимальное значение — 1048576.

Примечание.

Устаревшая версия имеет ограничение maxSize по умолчанию 128.

Возвраты

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

Совет

Чтобы подсчитать только отдельные значения, используйте dcount() или count_distinct().

Пример

Установка из скалярного столбца

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

StormEvents 
| summarize states=make_set(State) by DamageCrops

Показанная таблица результатов содержит только первые 10 строк.

DamageCrops по рейтингу погоды
0 ["СЕВЕРНАЯ КАРОЛИНА", "WISCONSIN", "НЬЮ-ЙОРК", "АЛЯСКА", "DELAWARE", "ОКЛАХОМА", "ИНДИАНА", "ИЛЛИНОЙС", "МИННЕСОТА", "ЮЖНАЯ ДАКОТА", "ТЕХАС", "ЮТА", "КОЛОРАДО", "ВЕРМОНТ", "НЬЮ-ДЖЕРСИ", "ВИРДЖИНИЯ", "КАЛИФОРНИЯ", "ПЕНСИЛЬВАНИЯ", "МОНТАНА", "ВАШИНГТОН", "ORE"GON", "ГАВАЙИ", "IDAHO", "ПУЭРТО-РИКО", "МИЧИГАН", "ФЛОРИДА", "ВАЙОМИНГ", "ЗАЛИВ МЕКСИКИ", "ШТАТ НЕВАДА", "ЛУИЗИАНА", "ТЕННЕССИ", "KENTUCKY", "МИССИСИПИ", "ALABAMA", "ГРУЗИЯ", "ЮЖНАЯ КАРОЛИНА", "ОГАЙО", "НЬЮ-МЕКСИКА", "АТЛАНТИЧЕСКИЙ ЮГ", "NEW МЕКСИКА", "NEW MEXICO SOUTH", "NEW HAMPSHIRE", "АТЛАНТИЧЕСКИЙ СЕВЕР", "СЕВЕРНАЯ ДАКОТА", "АЙОВА", "НЕБРАСКА", "ЗАПАДНАЯ ВИРДЖИНИЯ", "МЭРИЛЕНД", "КАНЗАС", "МИССУРИ", "АРКАНЗАС", "АРИЗОНА", "МАССАЧУСЕТС", "МЭН", "КОННЕКТИКУТ", "Коннектикут",", "GUAM", "ГАВАЙСКИЕ ВОДЫ", "АМЕРИКАНСКАЯ САМОА", "ОЗЕРО HURON", "ОКРУГ КОЛУМБИЯ", "РОД-ОСТРОВ", "ОЗЕРО МИЧИГАН", "ОЗЕРО СУПЕР", "ОЗЕРО ST CLAIR", "LAKE ERIE", "ЛЕЙК ОНТАРИО", "E PACIFIC", "ЗАЛИВ АЛЯСКИ"]
30 000 ["ТЕХАС","NEBRASKA", "IOWA", "МИННЕСОТА", "WISCONSIN"]
4 000 000 ["КАЛИФОРНИЯ","KENTUCKY", "NORTH DAKOTA", "WISCONSIN", "ВИРДЖИНИЯ"]
3000000 ["КАЛИФОРНИЯ", "ИЛЛИНОЙС", "МИССУРИ", "ЮЖНАЯ КАРОЛИНА", "СЕВЕРНАЯ КАРОЛИНА", "МИССИСИПИ", "СЕВЕРНАЯ ДАКОТА", "ОГАЙО"]
14 000 000 ["КАЛИФОРНИЯ", "СЕВЕРНАЯ ДАКОТА"]
400000 ["КАЛИФОРНИЯ", "МИССУРИ","МИССИСИПИ","NEBRASKA", "WISCONSIN", "СЕВЕРНАЯ DAKOTA"]
50000 ["КАЛИФОРНИЯ","ДЖОРДЖИЯ","NEBRASKA","ТЕХАС","ЗАПАДНАЯ ВИРДЖИНИЯ", "КАНЗАС", "МИССУРИ", "МИССИСИПИ", "НЬЮ-МЕКСИКА", "АЙОВА", "СЕВЕРНАЯ DAKOTA", "ОГАЙО", "WISCONSIN", "ИЛЛИНОЙС", "МИННЕСОТА", "KENTUCKY"]
18 000 ["ВАШИНГТОН","WISCONSIN"]
107900000 ["КАЛИФОРНИЯ"]
28900000 ["КАЛИФОРНИЯ"]

Установка из столбца массива

В следующем примере показан набор элементов в массиве.

datatable (Val: int, Arr1: dynamic)
[
    1, dynamic(['A1', 'A2', 'A3']), 
    5, dynamic(['A2', 'C1']),
    7, dynamic(['C2', 'A3']),
    5, dynamic(['C2', 'A1'])
] 
| summarize Val_set=make_set(Val), Arr1_set=make_set(Arr1)
Val_set Arr1_set
[1,5,7] ["A1","A2","A3","C1","C2"]
  • Используйте mv-expand оператор для противоположной функции.
  • make_set_if оператор аналогичен make_set, кроме того, он принимает предикат.