Presto SQL-如何获得数组的所有可能组合?

Aru*_*ave 5 database arrays hive presto

我想要给定数组中所有可能的数字组合。

我试过使用presto的一些预定义函数,例如array_agg(x)

Input : [1,2,3,4]
Output
when n=2 : [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]
when n=3 : [[1,2,3],[1,2,4],[1,3,4],[2,3,4]]
when n=4 : [[1,2,3,4]] or [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

lef*_*oin 6

combinations(array(T),n)函数,它确实可以实现您想要的功能:

select combinations(array[1,2,3,4],2);
Run Code Online (Sandbox Code Playgroud)