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

कुछ परिणाम sql फ़ील्ड को एक सामान्य वस्तु में समूहित करना

नीचे दी गई क्वेरी को काम करना चाहिए:

from sqlalchemy import func
# ...

query = (
    select(
        [
            func.json_build_object(
                "id",
                events.c.id,
                "title",
                events.c.title,
                "location",
                func.json_agg(
                    func.json_build_object(
                        "city",
                        locations.c.city,
                        "street",
                        locations.c.street,
                        "building",
                        locations.c.building,
                    )
                ),
                "location_all_columns_example",
                func.json_agg(func.json_build_object(
                    *itertools.chain(*[(_.name, _) for _ in locations.c])
                )),
                "activity",
                func.json_agg(
                    func.json_build_object(
                        "name",
                        activities.c.name,
                    )
                ),
            )
        ]
    )
    .select_from(events.join(locations).join(activities))
    .where(
        and_(
            events.c.id == pk,
            locations.c.id == events.c.location_id,
            activities.c.id == events.c.activities_id,
        )
    )
    .order_by(desc(events.c.created_at))
    .group_by(events.c.id)  # !!! <- IMPORTANT
)

कृपया ध्यान दें कि आपको group_by . की आवश्यकता है खंड।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेज पदानुक्रमित (jsonb) CTE अनावश्यक रूप से धीमा

  2. PostgreSQL में दो प्रकार की तालिका बनाएं

  3. PostgreSQL का \dt केवल सार्वजनिक स्कीमा टेबल क्यों दिखाता है?

  4. लूप के लिए उपयोग किए बिना गोलांग का उपयोग करके पोस्टग्रेज में सीएसवी से बल्क इंसर्ट

  5. PGAdmin III AWS RDS को कनेक्ट नहीं कर सकता