返回输入数组元素的N元组合组成的数组。
命令格式
combinations(array(T), n)
参数说明
array:为输入数组。
n:元数。
返回值说明
返回输入数组元素的N元组合组成的数组。
如果输入数组没有重复项,则返回N元子集数组。子集是确定的但顺序不保证,子集中元素是确定的但顺序不保证。
目前n的值默认不能大于5(可通过设置odps.sql.max.combination.length值进行调整), 生成总子集数量默认不能大于100000(可通过设置odps.sql.max.combinations值进行调整)。
如果n大于输入数组元素数,则返回数组为空。
示例
SELECT combinations(array('foo', 'bar', 'boo'),2);
返回结果如下:
[['foo', 'bar'], ['foo', 'boo']['bar', 'boo']]
SELECT combinations(array(1,2,3,4,5),3);
返回结果如下:
[[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]]
SELECT combinations(array(1,2,2),2);
返回结果如下:
[[1,2], [1,2], [2,2]]
相关函数
COMBINATIONS函数属于复杂类型函数,更多对复杂类型数据(例如ARRAY、MAP、STRUCT、JSON数据)的处理函数请参见复杂类型函数。
文档内容是否对您有帮助?