Использование alias () для «выберите как» в SQLAlchemy - PullRequest
26 голосов
/ 08 февраля 2012

Допустим, у меня есть таблица «share» со следующими столбцами:

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.Похоже, мне нужно использовать псевдоним (), но я не могу понять, как, глядя на документацию.Буду признателен, если кто-нибудь покажет мне, как это сделать.

Большое спасибо!

1 Ответ

77 голосов
/ 08 февраля 2012

Вы действительно хотите метод label.

result = dbsession.query(Shares.price, \
                            func.sum(Shares.quantity).label("Total sold")) \
                            .filter(Shares.company== 'Google') \
                            .group_by(Shares.price).all()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...