全部產品
Search
文件中心

MaxCompute:COMBINATIONS

更新時間:Dec 05, 2025

返回輸入數組元素的N元組合組成的數組。

命令格式

combinations(array(T), n)

參數說明

  • array:輸入數組。

  • n:元數。

傳回值說明

返回輸入數組元素的N元組合組成的數組。

  • 如果輸入數組沒有重複項,則返回N元子集數組。子集和子集中元素是確定的,但順序不保證。

  • 目前n的值預設不能大於5(可通過設定odps.sql.max.combination.length值進行調整), 產生總子集數量預設不能大於100000(可通過設定odps.sql.max.combinations值進行調整)。

  • 如果n大於輸入數組元素數,則返回空數組。

樣本

  • 樣本1:字串類型的數組。

    SELECT combinations(array('foo', 'bar', 'boo'),2);

    返回結果如下:

    [['foo', 'bar'],['foo', 'boo'],['bar', 'boo']]
  • 樣本2:數實值型別的數組。

    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]]
  • 樣本3:包含重複元素的數組。

    SELECT combinations(array(1,2,2),2);

    返回結果如下:

    [[1,2], [1,2], [2,2]]	

相關函數

COMBINATIONS函數屬於複雜類型函數,更多對複雜類型資料(例如ARRAY、MAP、STRUCT、JSON資料)的處理函數請參見複雜類型函數