Retorna um array com todas as combinações de n elementos de um array de entrada.
Sintaxe
combinations(array(T), n)
Parâmetros
array: O array de entrada.
n: O número de elementos em cada combinação.
Valor de retorno
Retorna um array que contém todas as combinações de n elementos do array de entrada.
Se o array de entrada não contiver elementos duplicados, a função retornará um array de subconjuntos de n elementos. A saída é determinística, mas não há garantia quanto à ordem dos subconjuntos ou dos elementos internos.
Por padrão, o valor de n não pode ser maior que 5, e o número total de combinações geradas não pode exceder 100.000. Para alterar esses limites, defina os parâmetros odps.sql.max.combination.length e odps.sql.max.combinations.
Se n for maior que o número de elementos no array de entrada, a função retornará um array vazio.
Exemplos
-
Exemplo 1: Array do tipo STRING.
SELECT combinations(array('foo', 'bar', 'boo'),2);Resultado retornado:
[['foo', 'bar'],['foo', 'boo'],['bar', 'boo']] -
Exemplo 2: Array de tipo numérico.
SELECT combinations(array(1,2,3,4,5),3);Resultado retornado:
[[1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4], [1, 2, 5], [1, 3, 5], [2, 3, 5], [1, 4, 5], [2, 4, 5], [3, 4, 5]] -
Exemplo 3: Array com elementos duplicados.
SELECT combinations(array(1,2,2),2);Resultado retornado:
[[1,2], [1,2], [2,2]]
Funções relacionadas
COMBINATIONS é uma função de tipo complexo. Para obter mais informações sobre funções que processam tipos de dados complexos, como ARRAY, MAP, STRUCT e JSON, consulte Complex type functions.