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