入力配列から n 個の要素のすべての組み合わせの配列を返します。
構文
combinations(array(T), n)パラメーター
array:入力配列。
n:各組み合わせの要素数。
戻り値
入力配列から n 個の要素のすべての組み合わせを含む配列を返します。
入力配列に重複する要素が含まれていない場合、この関数は n 個の要素からなるサブセットの配列を返します。出力は決定論的ですが、サブセットとその中の要素の順序は保証されません。
デフォルトでは、n の値は 5 を超えることはできず、生成される組み合わせの総数は 100,000 を超えることはできません。これらの制限は、odps.sql.max.combination.length および odps.sql.max.combinations パラメーターを設定することで変更できます。
n が入力配列の要素数より大きい場合、この関数は空の配列を返します。
例
例 1:STRING 型の配列。
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 などの複合データ型を処理する関数の詳細については、「複合型関数」をご参照ください。