Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden eines Labels in einer Having-Klausel in sqlachemy

Probieren Sie eine der beiden folgenden Versionen aus (nicht sicher, ob die zweite mit MySQL funktioniert):

rstuff = (Foo.max_stuff - db.func.sum(Bar.stuff))
qry = (
    db.session.query(
        Foo.id,
        Foo.name,
        rstuff.label('rstuff')
    )
    .join(Bar)
    .group_by(Foo.id)

    # version-1: probably universal, but repeats the expression
    .having(rstuff >= 3)
    # version-2: might depend on the RMDBS engine
    # .having(db.literal_column('rstuff') >= 3)
)