sql >> Base de Datos >  >> RDS >> PostgreSQL

Genere sql con subconsulta como una columna en la declaración de selección usando SQLAlchemy

Si necesita esto con frecuencia y/o el conteo es una parte integral de su Tab1 modelo, debe usar una propiedad híbrida como la descrita en la otra respuesta. Si, por otro lado, necesita esto solo para una sola consulta, entonces podría crear la subconsulta escalar usando Query.label() , o 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)

La subconsulta correlacionará automáticamente lo que pueda con la consulta adjunta.