Mengonversi array struct yang berisi pasangan kunci-nilai menjadi multimap, di mana setiap kunci unik dipetakan ke array berisi semua nilai terkait.
Sintaksis
multimap_from_entries(array<struct<K, V>>) -> map<K, array<V>>
Parameter
| Parameter | Type | Description |
|---|---|---|
array<struct<K, V>> |
array<struct> |
Array struct berisi pasangan kunci-nilai. Setiap struct harus memiliki tepat dua bidang: sebuah kunci dan sebuah nilai. |
Nilai kembalian
Mengembalikan map<K, array<V>>. Kunci duplikat digabungkan dengan nilai-nilainya dikumpulkan ke dalam satu array.
Kasus tepi
| Condition | Result |
|---|---|
Array input bernilai null |
Mengembalikan null |
| Sebuah struct memiliki jumlah bidang kurang dari atau lebih dari 2 | Mengembalikan error |
Kunci apa pun bernilai null |
Mengembalikan error |
Contoh
Kueri berikut mengelompokkan nilai berdasarkan kunci. Kunci 1 muncul dua kali, sehingga kedua nilainya digabungkan ke dalam satu array.
SELECT multimap_from_entries(array(struct(1, 'a'),
struct(2, 'b'),
struct(1, 'c')));
Hasil:
{1: ['a', 'c'], 2: ['b']}
Fungsi terkait
MULTIMAP_FROM_ENTRIES adalah fungsi tipe kompleks. Untuk informasi selengkapnya mengenai fungsi untuk memproses tipe kompleks seperti ARRAY, MAP, STRUCT, dan JSON, lihat Complex type functions.