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


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

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

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

Синтаксис

collect_set(expr) [FILTER ( WHERE cond ) ]

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

Аргументы

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

Возвраты

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

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

Примеры

> 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]