Flatten Sie aggregierte Schlüssel / Wert-Paare aus einem JSONB-Feld zusammen?

Ich arbeite in Postgres 9.4 mit der folgenden Tabelle:

     Column      │         Type         │ Modifiers
─────────────────┼──────────────────────┼──────────────────────
 id              │ integer              │ not null default
 practice_id     │ character varying(6) │ not null
 date            │ date                 │ not null
 pct_id          │ character varying(3) │
 total_list_size │ double precision     │ not null
 star_pu         │ jsonb                │

Ich habe die folgende Abfrage:

SELECT date,
       AVG(total_list_size) AS total_list_size,
       json_object_agg(key, val) AS star_pu
FROM (SELECT date,
             SUM(total_list_size) AS total_list_size,
             key, SUM(value::numeric) val FROM frontend_practicelist p,
             jsonb_each_text(star_pu)
       GROUP BY date, key ) p
GROUP BY date
ORDER BY date;

Es gibt mir Ergebnisse mit einem an @ angehängten JSON-Objestar_pu:

date            │ 2013-04-01
total_list_size │ 56025123.000000000000
star_pu         │ { "antidepressants_cost" : 180102416.8036909901975399, "antiepileptic_drugs_cost" : 296228344.171576079922216... }

Instead Ich möchte das JSON-Ergebnis auf eine Reihe von Schlüssel mit Namespace reduzieren. Das Ergebnis sieht also folgendermaßen aus:

date            │ 2013-04-01
total_list_size │ 56025123.000000000000
star_pu.antidepressants_cost        │ 180102416.8036909901975399
star_pu.antiepileptic_drugs_cost    │ 296228344.171576079922216 
...

Ist das möglich

Antworten auf die Frage(2)

Ihre Antwort auf die Frage