make_set() (функция агрегирования)
Область применения: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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
, кроме того, он принимает предикат.