Du kan bruge json_array_elements
funktion til at generere en SETOF json
fra et array:
SELECT name, json_array_elements(data) AS author
FROM publisher
Når du har det, kan du bruge det som en underforespørgsel, så du kan filtrere, hvad du vil, f.eks.:
SELECT DISTINCT author->>'author'
FROM (
SELECT name, json_array_elements(data) AS author
FROM publisher
) t
WHERE t.author->>'type' = 'Novel';
Bemærk blot, at hvis du har mange rækker i denne tabel, vil ydelsen af sådanne forespørgsler (i hvert fald for den nuværende version, 9.3) være rigtig dårlig. Jeg vil anbefale dig at normalisere dataene til tabeller.