Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:
Databricks SQL
Databricks Runtime 16.4 e posterior
Retorna valores concatenados STRING e BINARY dentro de um grupo.
Esta função é um alias para a função listagg.
Sintaxe
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 ]
Esta função também pode ser invocada como uma função de janela usando a OVER cláusula se as cláusulas WITHIN GROUP e FILTER forem omitidas.
Argumentos
exprUma expressão que é avaliada como a
STRINGouBINARY.NULLos valores são ignorados.delimiterUma expressão constante correspondente ao tipo de
exprusado para separar os valores concatenados. O padrão é uma cadeia de caracteres vazia ('') paraSTRINGe um binário de comprimento zero (''::BINARY) paraBINARY.ORDER BYUma expressão usada para ordenar os valores antes da concatenação. O padrão é a ordem das linhas no grupo.
sortKeyUma expressão sobre a qual a ordem é definida. As referências da coluna dentro
sortKeytambém devem estar presentes emexpr.sort_direction
Especifica a ordem de classificação para a ordem por expressão.
-
ASC: A direção de classificação para esta expressão é ascendente. -
DESC: A ordem de classificação para esta expressão é decrescente.
Se a direção de classificação não for especificada explicitamente, por padrão, as linhas serão classificadas em ordem crescente.
-
ordem_de_classificação_de_nulos
Opcionalmente, especifica se os valores NULL são retornados antes/depois de valores não-NULL. Se
null_sort_ordernão for especificado, então os NULLs serão ordenados primeiro se a ordem de classificação forASCe os NULLs serão ordenados por último se a ordem de classificação forDESC.-
NULLS FIRST:NULLos valores são retornados primeiro, independentemente da ordem de classificação. -
NULLS LAST:NULLos valores são retornados por último, independentemente da ordem de classificação.
-
cond: Uma expressão opcionalBOOLEANque filtra as linhas usadas para agregação.
Devoluções
A STRING if expr é um STRING, BINARY caso contrário.
Se DISTINCT for especificado, apenas valores exclusivos serão agregados e o sortKey deve corresponder .expr
Exemplos
-- 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