Użyj json_agg() i jsonb_array_elements() funkcje:
select json_agg(cell)
from (
select jsonb_array_elements(elem->'cell') cell
from (
select jsonb_array_elements(data->'cust') elem
from product_cust
) subsub
) sub
Możesz połączyć dwa wewnętrzne podzapytania:
select json_agg(cell)
from (
select jsonb_array_elements(jsonb_array_elements(data->'cust')->'cell') cell
from product_cust
) sub
Grupuj wyniki według identyfikatora produktu:
select productid, json_agg(cell)
from (
select productid, jsonb_array_elements(jsonb_array_elements(data->'cust')->'cell') cell
from product_cust
) sub
group by 1
order by 1