Renvoie un tableau composé des combinaisons de N éléments issues du tableau d'entrée.
Syntaxe
combinations(array(T), n)
Paramètres
array : tableau d'entrée.
n : nombre d'éléments par combinaison.
Valeur de retour
Renvoie un tableau contenant les combinaisons de N éléments issues du tableau d'entrée.
Si le tableau d'entrée ne contient aucun doublon, la fonction renvoie un tableau de sous-ensembles de N éléments. Les sous-ensembles et leurs éléments sont déterministes, mais leur ordre n'est pas garanti.
Par défaut, la valeur de n ne peut pas dépasser 5 (ce seuil est ajustable via le paramètre odps.sql.max.combination.length). Le nombre total de sous-ensembles générés ne peut pas dépasser 100 000 par défaut (ce seuil est ajustable via le paramètre 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 : tableau de type STRING.
SELECT combinations(array('foo', 'bar', 'boo'),2);Le résultat renvoyé est le suivant :
[['foo', 'bar'],['foo', 'boo'],['bar', 'boo']] -
Exemple 2 : tableau de type numérique.
SELECT combinations(array(1,2,3,4,5),3);Le résultat renvoyé est le suivant :
[[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 : tableau contenant des éléments en double.
SELECT combinations(array(1,2,2),2);Le résultat renvoyé est le suivant :
[[1,2], [1,2], [2,2]]
Fonctions associées
La fonction COMBINATIONS appartient à la catégorie des fonctions de type complexe. Pour plus d'informations sur les fonctions de traitement des données de type complexe (telles que ARRAY, MAP, STRUCT et JSON), consultez la rubrique Complex type functions.