Как из массива 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;

Подскажите пожалуйста способ проще.


Ответы (0 шт):