Anda dapat menggunakan json_array_elements
berfungsi untuk menghasilkan SETOF json
dari larik:
SELECT name, json_array_elements(data) AS author
FROM publisher
Setelah itu, Anda dapat menggunakannya sebagai subquery, sehingga Anda dapat memfilter apa yang Anda inginkan, mis.:
SELECT DISTINCT author->>'author'
FROM (
SELECT name, json_array_elements(data) AS author
FROM publisher
) t
WHERE t.author->>'type' = 'Novel';
Perhatikan bahwa jika Anda memiliki banyak baris dalam tabel ini, kinerja kueri tersebut (setidaknya untuk versi saat ini, 9.3) akan sangat buruk. Saya sarankan Anda untuk menormalkan data ke dalam tabel.