SQLite json_group_array()
function adalah fungsi agregat yang mengembalikan larik JSON yang terdiri dari semua nilai dalam agregasi.
Dengan kata lain, ia membangun sebuah array dari nilai-nilai yang diberikan oleh argumennya.
Sintaks
json_group_array(X)
Dimana X
mewakili elemen yang akan terdiri dari array yang dihasilkan.
Contoh
Berikut adalah contoh sederhana untuk ditunjukkan:
SELECT json_group_array( "Fritz" );
Hasil:
["Fritz"]
Kita dapat melihat bahwa sebuah array dikembalikan, dengan nilai yang kita berikan.
Namun, kekuatan sebenarnya dari fungsi ini ditunjukkan dalam skenario yang menggunakan data agregat (seperti dalam contoh database di bawah). Lagi pula, kita bisa saja menggunakan json_array()
fungsi untuk contoh di atas:
SELECT json_array( "Fritz" );
Hasil:
["Fritz"]
Seperti disebutkan, kekuatan sebenarnya dari fungsi ini adalah dalam menangani data agregat. Oleh karena itu, json_group_array()
biasanya akan digunakan saat menanyakan database.
Contoh Basis Data
Misalkan kita memiliki tabel berikut:
SELECT * FROM Pets;
Hasil:
+-------+---------+--------+ | PetId | PetName | TypeId | +-------+---------+--------+ | 1 | Homer | 3 | | 2 | Yelp | 1 | | 3 | Fluff | 2 | | 4 | Brush | 4 | +-------+---------+--------+
Kita bisa melihat ada tiga kolom, dan kita bisa melihat namanya.
Kita dapat menggunakan json_group_array()
seperti ini:
SELECT json_group_array(TypeId)
FROM Pets;
Hasil:
[3,1,2,4]
Di sini, saya membuat array yang terdiri dari semua TypeId
nilai.
Kita bisa melangkah lebih jauh dan meneruskan fungsi JSON lain sebagai argumen ke json_group_array()
.
Misalnya, jika kita ingin menghasilkan objek JSON untuk setiap baris dalam database, kita bisa menggunakan json_object()
fungsi pada tabel seperti ini:
SELECT json_object(
'PetId', PetId,
'PetName', PetName,
'TypeId', TypeId
)
FROM Pets;
Hasil:
{"PetId":1,"PetName":"Homer","TypeId":3} {"PetId":2,"PetName":"Yelp","TypeId":1} {"PetId":3,"PetName":"Fluff","TypeId":2} {"PetId":4,"PetName":"Brush","TypeId":4}
Kami kemudian dapat menggunakan json_group_array()
fungsi untuk menyediakan larik luar:
SELECT json_group_array(
json_object(
'PetId', PetId,
'PetName', PetName,
'TypeId', TypeId
)
)
FROM Pets;
Hasil:
[{"PetId":1,"PetName":"Homer","TypeId":3},{"PetId":2,"PetName":"Yelp","TypeId":1},{"PetId":3,"PetName":"Fluff","TypeId":2},{"PetId":4,"PetName":"Brush","TypeId":4}]
Sekarang, semua dokumen JSON yang dihasilkan oleh json_object()
diapit dalam array yang dihasilkan oleh json_group_array()
.