こんな感じでできます。
import sqlalchemy from case, func rs = session.query(User,case[ func.sum(case([(User.blood_type == 'A',1)],else_=0)).label("A"), func.sum(case([(User.blood_type == 'B',1)],else_=0)).label("B"), func.sum(case([(User.blood_type == 'O',1)],else_=0)).label("O"), func.sum(case([(User.blood_type == 'AB',1)],else_=0)).label("AB") ]).group_by(User.blood_type).all()
これはいいものだ。SQLAlchemy最高。