Как из массива jsonb получить массив int
Есть массив из jsonb-элементов, примерно такой: '[ { "id": "1", "list": [ "2", "3" ] }, { "id": "4", "list": [ "5", "6", "7" ] } ]'::jsonb Как получить массив всех значений list? Одно решение я придумал, но оно безумно кривое (хотя и рабочее):
WITH cte AS (
SELECT jsonb_array_elements(jsonb_array_elements('[
{
"id": "1",
"list": [
"2",
"3"
]
},
{
"id": "4",
"list": [
"5",
"6",
"7"
]
}
]'::jsonb) -> 'list')::text AS list
)
SELECT
array_agg(trim(list, '"')::int) AS list
FROM cte;
Подскажите пожалуйста способ проще.