Możesz użyć json_array_elements
funkcja do generowania SETOF json
z tablicy:
SELECT name, json_array_elements(data) AS author
FROM publisher
Mając to, możesz użyć go jako podzapytania, dzięki czemu możesz filtrować, co chcesz, np.:
SELECT DISTINCT author->>'author'
FROM (
SELECT name, json_array_elements(data) AS author
FROM publisher
) t
WHERE t.author->>'type' = 'Novel';
Pamiętaj tylko, że jeśli masz wiele wierszy w tej tabeli, wydajność takich zapytań (przynajmniej dla obecnej wersji 9.3) będzie naprawdę słaba. Zalecam normalizację danych w tabelach.