在SQLAlchemy中使用alias()作为“select as”

时间:2012-02-08 03:35:11

标签: python sqlalchemy pyramid

假设我有一个表'共享'与以下列:

company    price    quantity
Microsoft  100      10
Google     99       5
Google     99       20
Google     101      15

我想运行相当于这样的SQL语句:

select price, sum(quantity) as num from shares where company='Google' group by price;

我最接近的是:

result = dbsession.query(Shares.price, func.sum(Shares.quantity)).filter(Shares.company== 'Google').group_by(Shares.price).all()

我在sqlalchemy中设置'sum(quantity)as num'时遇到了麻烦。看来我需要使用别名(),但我无法通过查看文档来弄清楚如何。如果有人能告诉我该怎么做,我将不胜感激。

非常感谢!

1 个答案:

答案 0 :(得分:73)

您实际上需要label方法。

result = dbsession.query(Shares.price, \
                            func.sum(Shares.quantity).label("Total sold")) \
                            .filter(Shares.company== 'Google') \
                            .group_by(Shares.price).all()