Oh, you are right of course. This works, however I would still like to transform the query programmatically (mainly out of curiosity) from
>> q = session.query(Person).order_by(Person.name) >> q = q.filter(Person.age > age) >> return q to >> q = session.query(func.count(Person.id)) >> q = q.filter(Person.age > age) >> return q (I am not sure if the order_by part can remain or not.) Is this possible somehow? I am pretty sure I read something along these lines but cannot find it anywhere. Ladislav Lenart On 24.10.2012 17:10, Simon King wrote: > On Wed, Oct 24, 2012 at 3:59 PM, Ladislav Lenart <lenart...@volny.cz> wrote: >> Hello. >> >> Suppose I have the following query: >> >> def people_older_than(age): >> q = session.query(Person).order_by(Person.name) >> q = q.filter(Person.age > age) >> return q >> >> It returns a subset of Person instances. How can I augment the query so it >> returns only their count? I.e.: >> >> def number_of_people_older_than(age) >> q = people_older_than(21) >> q_count = q # Apply some magic here. >> return q_count.scalar() >> >> >> Thank you in advance, >> >> Ladislav Lenart >> > > I don't think any magic is required. Does this work for you: > > def number_of_people_older_than(age) > q = people_older_than(age) > return q.count() > > See also http://docs.sqlalchemy.org/en/rel_0_7/orm/tutorial.html#counting > > Simon -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.