make_set() (агрегатная функция)
Создает dynamic
массив набора различных значений, которые expr принимает в группе.
Значения NULL игнорируются и не учитываются при вычислении.
Примечание
Эта функция используется в сочетании с оператором summarize.
Нерекомендуемые псевдонимы: makeset()
Синтаксис
make_set(
expr [,
maxSize])
Дополнительные сведения о соглашениях о синтаксисе.
Параметры
Имя | Тип | Обязательно | Описание |
---|---|---|---|
expr | string |
✔️ | Выражение, используемое для вычисления агрегирования. |
Maxsize | int |
Максимальное количество возвращаемых элементов. Значения по умолчанию и максимальное значение — 1048576. |
Примечание
Нерекомендуемая версия имеет ограничение maxSize по умолчанию 128.
Возвращаемое значение
dynamic
Возвращает массив набора уникальных значений, которые expr принимает в группе.
Порядок сортировки массива не определен.
Совет
Чтобы подсчитать только уникальные значения, используйте dcount() или count_distinct().
Пример
Установка из скалярного столбца
В следующем примере показан набор состояний, сгруппированных с одинаковым объемом ущерба от урожая.
StormEvents
| summarize states=make_set(State) by DamageCrops
Показанная таблица результатов содержит только первые 10 строк.
DamageCrops | штаты |
---|---|
0 | ["СЕВЕРНАЯ КАРОЛИНА","ВИСКОНСИН","НЬЮ-ЙОРК","АЛЯСКА","ДЕЛАВЭР","ОКЛАХОМА","ИНДИАНА","ИЛЛИНОЙС","МИННЕСОТА","ЮЖНАЯ ДАКОТА","ТЕХАС","ЮТА","КОЛОРАДО","ВЕРМОНТ","НЬЮ-ДЖЕРСИ","ВИРДЖИНИЯ","КАЛИФОРНИЯ","ПЕНСИЛЬВАНИЯ","МОНТАНА","ВАШИНГТОН","ОРЕГGON","ГАВАЙИ","АЙДАХО","ПУЭРТО-РИКО","МИЧИГАН","ФЛОРИДА","ВАЙОМИНГ","МЕКСИКАНСКИЙ ЗАЛИВ","НЕВАДА","ЛУИЗИАНА","ТЕННЕССИ", "КЕНТУККИ","МИССИСИПИ","АЛАБАМА","ДЖОРДЖИЯ","ЮЖНАЯ КАРОЛИНА","ОГАЙО","НЬЮ-МЕКСИКО","АТЛАНТИЧЕСКИЙ ЮГ","НЬЮ-КАРОЛИНА", "НЬЮ-КАРОЛИНА" ХЭМПШИР","АТЛАНТИЧЕСКИЙ СЕВЕР","СЕВЕРНАЯ ДАКОТА","АЙОВА","НЕБРАСКА","ЗАПАДНАЯ ВИРДЖИНИЯ","МЭРИЛЕНД","КАНЗАС","МИССУРИ","АРКАНЗАС","АРИЗОНА","МАССАЧУСЕТС","МЭН","КОННЕКТИКУТ",","ГУАМ","ГАВАЙИ УОТЕРС","АМЕРИКАНСКОЕ САМОА","ОЗЕРО ГУРОН","ОКРУГ КОЛУМБИЯ","РОД-АЙЛЕНД","ОЗЕРО МИЧИГАН","ОЗЕРО СУПЕРИСТО","ОЗЕРО СЕНТ-КЛЕР","ОЗЕРО ERIE","ОЗЕРО ОНТАРИО","E PACIFIC","ЗАЛИВ АЛЯСКА"] |
30 000 | ["ТЕХАС","НЕБРАСКА","АЙОВА","МИННЕСОТА","ВИСКОНСИН"] |
4000000 | ["КАЛИФОРНИЯ","КЕНТУККИ","СЕВЕРНАЯ ДАКОТА","ВИСКОНСИН","ВИРДЖИНИЯ"] |
3000000 | ["КАЛИФОРНИЯ","ИЛЛИНОЙС","МИССУРИ","ЮЖНАЯ КАРОЛИНА","СЕВЕРНАЯ КАРОЛИНА","МИССИСИПИ","СЕВЕРНАЯ ДАКОТА","ОГАЙО"] |
14000000 | ["КАЛИФОРНИЯ","СЕВЕРНАЯ ДАКОТА"] |
400000 | ["КАЛИФОРНИЯ","МИССУРИ","МИССИСИПИ","НЕБРАСКА","ВИСКОНСИН","СЕВЕРНАЯ ДАКОТА"] |
50 000 | ["КАЛИФОРНИЯ","ДЖОРДЖИЯ","НЕБРАСКА","ТЕХАС","ЗАПАДНАЯ ВИРДЖИНИЯ","КАНЗАС","МИССУРИ","МИССИСИПИ","НЬЮ-МЕКСИКО","АЙОВА","СЕВЕРНАЯ ДАКОТА","ОГАЙО","ВИСКОНСИН","ИЛЛИНОЙС","МИННЕСОТА","КЕНТУККИ"] |
18000 | ["ВАШИНГТОН","ВИСКОНСИН"] |
107900000 | ["CALIFORNIA"] |
28900000 | ["CALIFORNIA"] |
Задать из столбца массива
В следующем примере показан набор элементов в массиве.
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
, за исключением того, что он также принимает предикат.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по