返回輸入數組元素的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資料)的處理函數請參見複雜類型函數。