I have some working SQL that gets the last two id's (autoincremented) in a 
TaskRevisons table that has a column that maps to an id in a Tasks table.

The SQL is:

select task_id, id from TaskRevisions where (
  select count(*) from TaskRevisions as t
  where t.task_id = TaskRevisions.task_id and t.id <= TaskRevisions.id
) <= 2


I've got to:

taskrev_alias = aliased(TaskRevision, name='taskrev_alias')
subq = s.query(func.count(TaskRevision.id).label('rev_count')). \
            filter(and_(TaskRevision.task_id == taskrev_alias.task_id, \
                              taskrev_alias.id <= TaskRevision.id)).subquery
()
s.query(TaskRevision.task_id, TaskRevision.id).filter(subq.c.rev_count <= 2
).all()


but it's not quite working... so I'd appreciate a pointer :-) 

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to