COMBINATIONS

返回输入数组元素的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数据)的处理函数请参见复杂类型函数