Renvoie un tableau contenant toutes les combinaisons de n éléments issues d'un tableau d'entrée.
Syntaxe
combinations(array(T), n)
Paramètres
array : le tableau d'entrée.
n : le nombre d'éléments dans chaque combinaison.
Valeur renvoyée
Renvoie un tableau contenant toutes les combinaisons de n éléments issues du tableau d'entrée.
Si le tableau d'entrée ne contient pas de doublons, cette fonction renvoie un tableau de sous-ensembles de n éléments. La sortie est déterministe, mais l'ordre des sous-ensembles et celui des éléments qu'ils contiennent ne sont pas garantis.
Par défaut, la valeur de n ne peut pas dépasser 5 et le nombre total de combinaisons générées ne peut pas excéder 100 000. Modifiez ces limites en définissant les paramètres odps.sql.max.combination.length et odps.sql.max.combinations.
Si n est supérieur au nombre d'éléments du tableau d'entrée, la fonction renvoie un tableau vide.
Exemples
-
Exemple 1 : un tableau de type STRING.
SELECT combinations(array('foo', 'bar', 'boo'),2);Le résultat suivant s'affiche :
[['foo', 'bar'],['foo', 'boo'],['bar', 'boo']] -
Exemple 2 : un tableau de type numérique.
SELECT combinations(array(1,2,3,4,5),3);Le résultat suivant s'affiche :
[[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]] -
Exemple 3 : un tableau contenant des doublons.
SELECT combinations(array(1,2,2),2);Le résultat suivant s'affiche :
[[1,2], [1,2], [2,2]]
Fonctions associées
COMBINATIONS est une fonction de type complexe. Pour plus d'informations sur les fonctions qui traitent les types de données complexes, tels que ARRAY, MAP, STRUCT et JSON, consultez Fonctions de type complexe.