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.