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


Агрегатная функция array_agg

Область применения:флажок Databricks SQL флажок Databricks Runtime 10.4 LTS и выше

Возвращает массив, состоящий из всех значений в expr в группе. Эта функция является синонимом collect_list агрегатной функции.

Синтаксис

array_agg ( [ALL | DISTINCT] expr ) [FILTER ( WHERE cond ) ]

Эту функцию также можно вызвать как функцию окна с помощью предложения OVER.

Аргументы

  • expr: выражение любого типа.
  • cond: необязательное логическое выражение для фильтрации строк, используемых для агрегирования.

Возвраты

Массив типа аргумента.

Порядок элементов в массиве не является детерминированным. NULL значения исключаются.

Если указана DISTINCT, функция собирает только уникальные значения и является синонимом агрегатной функции collect_set.

Примеры

> SELECT array_agg(col) FROM VALUES (1), (2), (NULL), (1) AS tab(col);
 [1,2,1]
> SELECT array_agg(DISTINCT col) FROM VALUES (1), (2), (NULL), (1) AS tab(col);
 [1,2]