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

पोस्टग्रेज - एकल तालिका को समूहीकृत JSON ट्री में बदलें

एक मायने में, क्वेरी की संरचना परिणाम के समान है:

select json_agg(children)
from (
    select 
        json_build_object(
            'id', lvl1, 
            'children', json_agg(children order by lvl1)) as children
    from (
        select 
            lvl1, 
            json_build_object(
                'id', lvl2, 
                'children', json_agg(items order by lvl2)) as children
        from (
            select 
                lvl1, 
                lvl2, 
                json_build_object(
                    'id', lvl3, 
                    'items', json_agg(item order by lvl3)) as items
            from my_table
            group by lvl1, lvl2, lvl3
            ) s
        group by lvl1, lvl2
        ) s
    group by lvl1
    ) s;

DbFiddle.

ध्यान दें, कि order by समुच्चय में आवश्यक नहीं हैं क्योंकि एक json सरणी का क्रम अपरिभाषित है। मैंने उन्हें बिल्कुल अपेक्षित परिणाम प्राप्त करने के लिए जोड़ा है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बहु-तालिका खंडों के साथ एकल पंक्ति में एकाधिक पंक्ति मानों का चयन करें

  2. पोस्टग्रेज:जांचें कि क्या सरणी फ़ील्ड में मान है?

  3. 5m रिकॉर्ड तालिका को क्वेरी करने के लिए केवल क्रमबद्ध अनुक्रमणिका का उपयोग करके पोस्टग्रेज करता है

  4. Postgresql और psycopg2 में ऑटोोकॉमिट का क्या अर्थ है?

  5. PostgreSQL 9.3:डायनेमिक पिवट टेबल