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


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

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

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

Синтаксис

collect_set(expr) [FILTER ( WHERE cond ) ]

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

Аргументы

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

Возвраты

Выражение ARRAY со значениями типа argument.

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

Примеры

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

> SELECT collect_set(col1) FILTER(WHERE col2 = 10)
    FROM VALUES (1, 10), (2, 10), (NULL, 10), (1, 10), (3, 12) AS tab(col1, col2);
 [1,2]