Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применяется к:
Databricks SQL
Databricks Runtime 16.4 и более поздних версий
Возвращает сцепленные значения STRING и BINARY в пределах группы.
Эта функция является псевдонимом функции listagg.
Синтаксис
string_agg ( [ALL | DISTINCT] expr [, delimiter] )
[ WITHIN GROUP (ORDER BY { sortKey [ sort_direction ] [ nulls_sort_oder ] } [, ...] ) ]
[ FILTER ( WHERE cond ) ]
sort_direction
[ ASC | DESC ]
nulls_sort_order
[ NULLS FIRST | NULLS LAST ]
Эту функцию также можно вызвать как функцию окна с помощью OVER предложения, если WITHIN GROUP предложение и FILTER предложение опущены.
Аргументы
exprВыражение, которое вычисляется в значение
STRINGилиBINARY.NULLзначения игнорируются.delimiterКонстантное выражение, соответствующее типу, используемому
exprдля разделения объединенных значений. По умолчанию используется пустая строка ('') дляSTRINGи двоичный формат нулевой длины (''::BINARY) дляBINARY.ORDER BYВыражение, используемое для упорядочивания значений перед объединением. Значение по умолчанию — это порядок строк в группе.
sortKeyВыражение, для которого определен порядок. Ссылки на столбцы в
sortKeyтакже должны присутствовать вexpr.sort_direction
Указывает порядок сортировки для выражения ORDER BY.
-
ASC: направление сортировки для этого выражения восходящее. -
DESC: направление сортировки "по убыванию" для этого выражения.
Если направление сортировки не указано явно, по умолчанию строки сортируются по возрастанию.
-
порядок сортировки нулевых значений
При необходимости указывает, возвращаются ли значения NULL до или после значений, отличных от NULL. Если параметр
null_sort_orderне указан, то значения NULL сортируются в начале, когда порядок сортировки имеет значениеASC, или в конце, когда для порядка сортировки задано значениеDESC.-
NULLS FIRST:NULLзначения возвращаются сначала независимо от порядка сортировки. -
NULLS LAST:NULLзначения возвращаются в последний раз независимо от порядка сортировки.
-
cond: необязательноеBOOLEANвыражение, фильтрующее строки, используемые для агрегирования.
Возвраты
STRING если expr — это STRING, BINARY в противном случае.
Если DISTINCT задано, агрегируются только уникальные значения, и sortKey должно совпадать с expr.
Примеры
-- Simple example with default delimiter
> SELECT string_agg(col) FROM VALUES ('a'), ('b'), ('c') AS tab(col);
acb
-- Simple example with explicit delimiter
> SELECT string_agg(col, ', ') FROM VALUES ('a'), ('b'), ('c') AS tab(col);
b, a, c
-- Example with nulls
> SELECT string_agg(col) FROM VALUES ('a'), (NULL), ('c') AS tab(col);
ac
-- Example with explicit order
> SELECT string_agg(col) WITHIN GROUP (ORDER BY col DESC)
FROM VALUES ('a'), ('b'), ('c') AS tab(col);
cba
-- Example with DISTINCT
> SELECT string_agg(DISTINCT col)
FROM VALUES ('a'), ('a'), ('b') AS tab(col);
ab
-- Example of FUNCTION_AND_ORDER_EXPRESSION_MISMATCH
> SELECT string_agg(DISTINCT col) WITHIN GROUP (ORDER BY id DESC)
FROM VALUES (1, 'a'), (2, 'b'), (3, 'c') AS tab(id, col);
Error: [INVALID_WITHIN_GROUP_EXPRESSION.MISMATCH_WITH_DISTINCT_INPUT
-- Example with `BINARY`
> SELECT hex(string_agg(col::binary, x'00'))
FROM VALUES (1, 'a'), (2, 'b'), (3, 'c') AS tab(id, col);
6100630062