Ако имате нужда от това често и/или броят е неразделна част от вашия Tab1
модел, трябва да използвате хибридно свойство, както е описано в другия отговор. Ако от друга страна имате нужда от това само за една заявка, тогава можете просто да създадете скаларната подзаявка с помощта на Query.label()
или 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)
Подзаявката автоматично ще съпостави това, което може от ограждащата заявка.