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

SQLAlchemy, PostgreSQL और array_agg:array_agg से आइटम कैसे चुनें?

आप शायद सबकुछ ठीक कर रहे हैं, लेकिन पहले खाली सरणी प्राप्त कर रहे हैं। अपनी पिछली क्वेरी में आपने इन-पायथन फ़िल्टरिंग का उपयोग किया था (len(x[1]) > 1 ) आप Query प्रिंट कर सकते हैं यह सुनिश्चित करने के लिए इसे क्रियान्वित करने से पहले अभिव्यक्ति।

आपको संभवतः एक having add जोड़ना चाहिए आप के लिए आधार क्वेरी क्लॉज:

from sqlalchemy import Integer
from sqlalchemy.dialects.postgresql import ARRAY

cats_agg = func.array_agg(ProductCategory.id, type_=ARRAY(Integer)).label('cats')
prods = (
    session.query(
        Product.id.label('id'),
        cats_agg,
    .outerjoin(
        ProductCategory,
        ProductCategory.product_id == Product.id)
    .group_by(Product.id)
    .having(func.array_length(cats_agg, 1) > 1)
    .subquery()
)

तब आपको इन-पायथन फ़िल्टरिंग की भी आवश्यकता नहीं होगी।




  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. कैसे अजगर के साथ Postgresql में JSONB सम्मिलित करने के लिए?

  3. पोस्टग्रेस्क्ल परिणाम को बैश वैरिएबल में स्टोर करें

  4. ibatis के साथ नई डाली गई पंक्तियों की आईडी पुनर्प्राप्त करते समय समवर्ती समस्याएं

  5. @@Fetch_status postgreSQL में