sql >> Database >  >> RDS >> PostgreSQL

Genereer sql met subquery als een kolom in select-instructie met behulp van SQLAlchemy

Als je dit vaak nodig hebt, en/of de telling is een integraal onderdeel van je Tab1 model, moet u een hybride eigenschap gebruiken zoals beschreven in het andere antwoord. Als u dit daarentegen voor slechts één query nodig heeft, kunt u de scalaire subquery maken met behulp van Query.label() , of Query.as_scalar() :

count_stmt = session.query(func.count(1)).\
    filter(Tab2.tab1_id == Tab1.id).\
    group_by(Tab2.col1).\
    label('cnt')

session.query(Tab1, count_stmt).filter(...).limit(100)

De subquery correleert automatisch wat het kan uit de bijgevoegde query.



  1. Back-up/herstel van een gedockte PostgreSQL-database

  2. Hoe een opgeslagen procedure in SQL Server te coderen

  3. Embedded PostgreSQL voor Java JUnit-tests

  4. PostgreSQL Connection Pooling:Deel 2 – PgBouncer