PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Postgresql में jsonb नेस्टेड सरणी से कुंजी मान जोड़ी निकालें

स्टेप-बाय-स्टेप डेमो: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
  1. JSON तत्वों को एक-एक पंक्ति में विस्तृत करें। यह दो कॉलम उत्पन्न करता है:एक कुंजी के लिए और एक मान के लिए (JSON सरणी)
  2. JSON सरणी को एक-एक पंक्ति में विस्तृत करें (जो उस समेकित JSON ऑब्जेक्ट को अलग करती है जिससे आप c हटाना चाहते हैं तत्व)
  3. आप - का उपयोग कर सकते हैं तत्व को हटाने के लिए ऑपरेटर।
  4. मूल JSON ऑब्जेक्ट को फिर से एकत्रित करने के लिए, आपको इसे पीछे की ओर समूहित करना होगा। jsonb_agg() सरणियों को फिर से एकत्रित करता है
  5. अंत में आपको मूल JSON ऑब्जेक्ट को jsonb_object_agg() के साथ फिर से बनाना होगा पहले जेनरेट किए गए कुंजी कॉलम और नए सरणी कॉलम का उपयोग करना।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres . में टाइमस्टैम्प को एक पूर्णांक (यूनिक्स युग) में कैसे परिवर्तित करें

  2. दूरस्थ सर्वर से CSV के रूप में PostgreSQL निर्यात परिणाम

  3. एसक्यूएल ऐरे से स्ट्रिंग्स के ऐरे में परिणाम सेट को कनवर्ट करें

  4. कई PostgreSQL प्रश्नों को बेंचमार्क करना

  5. कनेक्शन.सेलेक्ट_वैल्यू केवल पीजी रत्न के साथ पोस्टग्रेज में स्ट्रिंग्स लौटाता है