Postgres achatar célula JSONB em linha na visualização

Tenho uma tabela simples do postgres:

    Column    │         Type         │ Modifiers
──────────────┼──────────────────────┼──────────────────────
 id           │ integer              │ not null default
 data         │ jsonb                │

Aqui está uma estrutura de dados simplificada paradata:

{
  "id": 3,
  "date": "2019-01-01",
  "well_report_table":
    [
      {"element": "methane",
      "yield": 6,
      "price": 2.10
      },
      {"element": "pentane",
      "yield": 6,
      "price": 2.10
      },
      {"element": "butane",
      "yield": 6,
      "price": 3.50
      }
    ],
  "cost_report_table":
    [
      {"item": "fuel",
      "charge": 6.30
      },
      {"item": "lease",
      "charge": 200
      }
    ]
}

Gostaria de achatar isso em uma exibição com as seguintes colunas:

id | date | well_report_table_methane_yield | well_report_table_methane_price | well_report_table_pentane_yield | well_report_table_pentane_price | well_report_table_butane_yield | well_report_table_butane_price |cost_report_table_fuel_charge | cost_report_table_lease_charge

Os objetos em minhas matrizes têm um identificador que eu gostaria de acrescentar ao nome do objeto da matriz e, em seguida, percorrer as outras chaves do objeto e criar colunas com.

Esta questão me aproxima:Postgres: Achatar pares de chave / valor agregados de um campo JSONB?

Não tenho certeza absoluta de que isso seja possível em algo como o plpgsql, por isso, se eu precisar gerar o texto da visualização em uma linguagem de script como ruby / python e criar uma visualização disso, estou de acordo com isso.

Ideally eu vou poder usar algo comojsonb_array_elements ejsonb_each para evitar tabelas intermediárias (todas as minhas tentativas atuais exigiram visualizações intermediárias), mas ainda não encontrei essa combinação mágic

questionAnswers(1)

yourAnswerToTheQuestion