आप शायद सबकुछ ठीक कर रहे हैं, लेकिन पहले खाली सरणी प्राप्त कर रहे हैं। अपनी पिछली क्वेरी में आपने इन-पायथन फ़िल्टरिंग का उपयोग किया था (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()
)
तब आपको इन-पायथन फ़िल्टरिंग की भी आवश्यकता नहीं होगी।