स्टेप-बाय-स्टेप डेमो:db<>fiddle
SELECT
jsonb_object_agg(key, a) -- 5
FROM (
SELECT
mydata,
key,
jsonb_agg(a_elems.value - 'c') as a -- 3/4
FROM
mytable,
jsonb_each(mydata) elems, -- 1
jsonb_array_elements(elems.value) AS a_elems -- 2
GROUP BY mydata, key -- 4
) s
GROUP BY mydata -- 5
- JSON तत्वों को एक-एक पंक्ति में विस्तृत करें। यह दो कॉलम उत्पन्न करता है:एक कुंजी के लिए और एक मान के लिए (JSON सरणी)
- JSON सरणी को एक-एक पंक्ति में विस्तृत करें (जो उस समेकित JSON ऑब्जेक्ट को अलग करती है जिससे आप
c
हटाना चाहते हैं तत्व) - आप
-
का उपयोग कर सकते हैं तत्व को हटाने के लिए ऑपरेटर। - मूल JSON ऑब्जेक्ट को फिर से एकत्रित करने के लिए, आपको इसे पीछे की ओर समूहित करना होगा।
jsonb_agg()
सरणियों को फिर से एकत्रित करता है - अंत में आपको मूल JSON ऑब्जेक्ट को
jsonb_object_agg()
के साथ फिर से बनाना होगा पहले जेनरेट किए गए कुंजी कॉलम और नए सरणी कॉलम का उपयोग करना।