Mengembalikan array yang berisi semua kombinasi dari n elemen dari array input.
Sintaksis
combinations(array(T), n)Parameter
array: Array input.
n: Jumlah elemen dalam setiap kombinasi.
Nilai pengembalian
Mengembalikan array yang berisi semua kombinasi dari n elemen dari array input.
Jika array input tidak mengandung elemen duplikat, fungsi ini mengembalikan array berisi subset dengan n elemen. Output bersifat deterministik, tetapi urutan subset maupun urutan elemen di dalamnya tidak dijamin.
Secara default, nilai n tidak boleh lebih besar dari 5, dan jumlah total kombinasi yang dihasilkan tidak boleh melebihi 100.000. Anda dapat mengubah batas ini dengan mengatur parameter odps.sql.max.combination.length dan odps.sql.max.combinations.
Jika n lebih besar dari jumlah elemen dalam array input, fungsi akan mengembalikan array kosong.
Contoh
Contoh 1: Array bertipe STRING.
SELECT combinations(array('foo', 'bar', 'boo'),2);Hasil berikut dikembalikan:
[['foo', 'bar'],['foo', 'boo'],['bar', 'boo']]Contoh 2: Array bertipe numerik.
SELECT combinations(array(1,2,3,4,5),3);Hasil berikut dikembalikan:
[[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]]Contoh 3: Array yang mengandung elemen duplikat.
SELECT combinations(array(1,2,2),2);Hasil berikut dikembalikan:
[[1,2], [1,2], [2,2]]
Fungsi terkait
COMBINATIONS adalah fungsi tipe kompleks. Untuk informasi selengkapnya mengenai fungsi yang memproses tipe data kompleks seperti ARRAY, MAP, STRUCT, dan JSON, lihat Complex type functions.